Commit Graph
800 Commits
Author SHA1 Message Date
Damien Buhl (alias daminetreg) 4b0bed40f7 Renamed macro wrapping attribute to a more descriptive name. 2014-07-27 16:07:47 +02:00
Damien Buhl (alias daminetreg) a13d1346f6 Adapted tests of assoc_struct to the type-deducing version of the ADAPT* macros. 2014-07-27 15:51:12 +02:00
Damien Buhl (alias daminetreg) a5d6fd0800 Test adapt_assoc_tpl_struct checking support for type deduction. 2014-07-23 02:49:28 +02:00
Damien Buhl (alias daminetreg) 5422ba7f8f Adds the possibility to omit the member type in ADAPT_ASSOC* macros usage.
This feature is enabled when BOOST_PP_VARIADICS also is, as it rely on it.
A placeholder for the type can be used when BOOST_PP_VARIADICS isn't
active.
2014-07-23 02:42:30 +02:00
Damien Buhl (alias daminetreg) 17e49ba448 Adds accessors for the wrapped attributes and provide preliminary support for type deduction to ADAPT_ASSOC* macros. 2014-07-23 00:36:07 +02:00
Damien Buhl (alias daminetreg) 34fac0c449 Fix ADAPT_*_C / ADAPT_*_C_BASE macros responsible.
These macros are used to handle generation of boilerplate code or each
member to add to the adapted sequence. And in the commit
abff92ab65 we changed the signature of these
macros to handle generation of proxied object field type deduction, this
change simply fix the related macros.
2014-06-25 00:45:38 +02:00
Damien Buhl (alias daminetreg) bf66c12cde Fix the unit test of adapt_struct for consistency with other tests of the same kind. 2014-06-25 00:25:14 +02:00
Damien Buhl (alias daminetreg) dd0cee1721 Documented type deduction for ADAPT_STRUCT_NAMED. 2014-06-25 00:24:26 +02:00
Damien Buhl (alias daminetreg) abff92ab65 Add support for members types deduction to the ADAPT_STRUCT_NAMED macro. 2014-06-25 00:11:40 +02:00
Damien Buhl (alias daminetreg) c008b0dc3a Fixes the BOOST_FUSION_DEFINE_STRUCT* macros with an appropriate attributes FILLER macro.
As the BOOST_FUSION_ADAPT_STRUCT_FILLER* macros were changed to handle type
deduction, this breaks the usage that BOOST_FUSION_DEFINE_STRUCT makes from
them.

That is BOOST_FUSION_DEFINE_STRUCT_IMPL expects a simple tuple, while we
now provide a tuple containing the size of a nested tuple which either has
or not the type provided. But in the case of the DEFINE* macros it would be
a non-sense to support this kind of API as a field being defined cannot be
deduced. :)
2014-06-17 22:35:10 +02:00
Damien Buhl (alias daminetreg) ae0c976926 Fixes missing inclusion of BOOST_PP_LESS.
This was bringing the std::pair adapt test to fail, because it wasn't
including BOOST_PP_LESS like the other tests.
2014-06-14 12:11:44 +02:00
Damien Buhl (alias daminetreg) af812e6207 Fixed ADAPT_STRUCT_FILLER macro call for consistency. 2014-06-14 12:09:04 +02:00
Damien Buhl (alias daminetreg) f0eab528e9 Fix adapt_struct test which was missing an using keyword. 2014-06-14 11:40:51 +02:00
Damien Buhl (alias daminetreg) 9a501785e6 Removed the old auto_* headers. 2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 0e50a02fbc Remove deleted unit tests from Jamfile. 2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 2e60ba6f29 Fixed typos and inconsistencies in ADAPT_STRUCT documentation. 2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 4cf96e14f3 Added test for the new ADAPT_STRUCT API capable to deduce member types. 2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 0000ca263b Removing AUTO_ADAPT_STRUCT_NAMED, AUTO_ADAPT_ASSOC_STRUCT and AUTO_ADAPT_ASSOC_STRUCT_NAMED.
As discussed with Agustín Bergé and Joel de Guzman on https://github.com/boostorg/fusion/pull/3,
it's better to remove the separate macro for the type deducting macros, and
to instead support a flexible API allowing backward compatibility and type
omission.

This is what ADAPT_STRUCT and ADAPT_STRUCT_TPL now provides. All other
macros will be improved in the same way in the following commits.
2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 6483cf4058 Adding documentation of the new ADAPT_STRUCT and ADAPT_STRUCT_TPL macros,
capable of deducing type.
2014-06-13 23:09:39 +02:00
Damien Buhl (alias daminetreg) 04ce8a788b Enabled new ADAPT_STRUCT_API for ADAPT_TPL_STRUCT. 2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) ce3f2d6020 Added new ADAPT_STRUCT API support for the ADAPT_STRUCT_AS_VIEW macro. 2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) 687b2cf097 Factoring out of adapt_struct.hpp all the FILLER_* macros details.
As of BOOST_FUSION_ADAPT_STRUCT without type deduction, there were only
simple attributes filler. Now this need more complex logic to handle both
API: the backward compatible one with type specificiation, the one without
type specification and the non-variadic one which enables omitting the type
specification by providing BOOST_FUSION_ADAPT_AUTO instead of the type.

That's why I extracted the FILLER_* macros details in a separate source
file.
2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) c851252f65 Renaming macros for ADAPT_STRUCT to deduce type or take provided attribute types. 2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) 557b3d2dc6 Fix detection of member_type parameter emptiness for BOOST_FUSION_ADAPT_STRUCT.
As BOOST_PP_IS_EMPTY is not a general purpose emptiness checker, we limit
the ways it can be used.
2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) 7ef202b794 Moved BOOST_FUSION_ADAPT_STRUCT implementation details to detail/adapt_base.hpp 2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) 02b776360a FEATURE: BOOST_FUSION_ADAPT_STRUCT can now also be called completely with
variadics arguments.

The following signature is possible :

 BOOST_FUSION_ADAPT_STRUCT(
        struct_name,
        member_name0,
        (BOOST_FUSION_ADAPT_AUTO, member_name1)
        (member_type2, member_name2)
	member_name3,
        ...
        )
2014-06-13 23:09:38 +02:00
Damien Buhl (alias daminetreg) 37fc1443ad Improve the BOOST_FUSION_ADAPT_STRUCT macro to work also when there is no variadic support.
This enable the following flexible macro signature when there is
no BOOST_PP_VARIADICS support:

BOOST_FUSION_ADAPT_STRUCT(
    struct_name,
    (member_type0, member_name0)
    (BOOST_FUSION_ADAPT_AUTO, member_name1)
    (,member_name2)
    ...
    )

If BOOST_PP_VARIADICS is active then there is quite more flexibility as it
allows to avoid the type specification:

BOOST_FUSION_ADAPT_STRUCT(
    struct_name,
    (member_type0, member_name0)
    (BOOST_FUSION_ADAPT_AUTO, member_name1)
    (,member_name2)
    (member_name3)
    ...
    )
2014-06-13 23:09:29 +02:00
Damien Buhl (alias daminetreg) 944c363787 Remove dependency to variadics macros for the old API not deducing types. 2014-06-13 23:07:49 +02:00
Damien Buhl (alias daminetreg) 6f6bfb3a27 EDITORIAL: Cleaning the ADAPT_STRUCT which can deduce types. 2014-06-13 23:07:32 +02:00
Damien Buhl (alias daminetreg) 04cbf0d4c6 BUGFIX: Presents the correct field name as a string even if type is deduced. 2014-06-13 23:07:32 +02:00
Damien Buhl (alias daminetreg) 703bff4ff9 FEATURE: Types of a struct can freely pe provided or deduced, following the user preferences. 2014-06-13 23:07:32 +02:00
Damien Buhl (alias daminetreg) 7e1c6cdf47 FEATURE: Type deduction for BOOST_FUSION_ADAPT_STRUCT_C_BASE, with preliminary support for providing or deducing the type. 2014-06-13 23:07:16 +02:00
Damien Buhl (alias daminetreg) 3ca94f5762 DOC: Add some comments to help me understand the adapt macros. 2014-06-13 23:04:09 +02:00
Damien Buhl (alias daminetreg) c052b4b452 FEATURE: Making BOOST_FUSION_AUTO_ADAPT_STRUCT variadic. 2014-06-13 23:04:09 +02:00
Damien Buhl (alias daminetreg) 166132789a DOC: Document the BOOST_FUSION_AUTO* macros.
This documents the AUTO_ADAPT macros :
  * BOOST_FUSION_AUTO_ADAPT_STRUCT
  * BOOST_FUSION_AUTO_ADAPT_STRUCT_NAMED
  * BOOST_FUSION_AUTO_ADAPT_ASSOC_STRUCT
  * BOOST_FUSION_AUTO_ADAPT_ASSOC_STRUCT_NAMED
2014-06-13 23:04:09 +02:00
Damien Buhl (alias daminetreg) 435fb5c29f EDITORIAL: Reorganize imports. 2014-06-13 23:04:09 +02:00
Damien Buhl (alias daminetreg) 934463c7b4 FEATURE: BOOST_FUSION_AUTO_ADAPT_ASSOC_STRUCT_NAMED now allows defining a Random Access Sequence and an Associative sequence without providing the type. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) a5f87696f2 EDITORIAL: Rename the macro for type deduction to a more expressive and correct name. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) 2d37b9c22c EDITORIAL: Fixes typos. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) f7b14aee35 FEATURE: BOOST_FUSION_AUTO_ADAPT_ASSOC_STRUCT now allows defining a Random Access Sequence and an Associative sequence without providing the type. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) 8a132ea44a BUGFIX: Fix include path. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) 5ffab5001e REFACTORING: reused the BOOST_FUSION_AUTO_ADAPT_STRUCT_NAMED_NS macro in BOOST_FUSION_AUTO_ADAPT_STRUCT_NAMED to mimic the non-AUTO versions. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) e58bd91f27 EDITORIAL: fixed indentation. 2014-06-13 23:04:08 +02:00
Damien Buhl (alias daminetreg) 5aa9a89fb8 FEATURE: BOOST_FUSION_AUTO_ADAPT_STRUCT_NAMED_NS which allows listing class attributes to adapt without specifying types. 2014-06-13 23:04:07 +02:00
Damien Buhl (alias daminetreg) 0d7ad9f6e2 FEATURE: BOOST_FUSION_AUTO_ADAPT_STRUCT_NAMED that does not require specifying the types of the fields. 2014-06-13 23:04:07 +02:00
Damien Buhl (alias daminetreg) 946957d3dc EDITORIAL: Change parameter names for consistency. 2014-06-13 23:04:07 +02:00
Damien Buhl (alias daminetreg) 3f965e00d3 #9516 BOOST_FUSION_AUTO_ADAPT_STRUCT that does not require specifying the types of the fields. 2014-06-13 23:04:07 +02:00
Joel de Guzman a0c1ec2018 Merge branch 'develop' boost-1.56.0 2014-05-27 08:45:08 +08:00
Joel de Guzman 1fde7cc293 Merge branch 'origin/develop' 2014-05-01 13:46:22 +08:00
Joel de Guzman 74a5d8804c reverting support for ref pending review 2014-05-01 13:44:45 +08:00