Commit Graph
827 Commits
Author SHA1 Message Date
Joel de Guzman 3192da28e6 Merge pull request #25 from daminetreg/fusion_adapters
BOOST_FUSION_ADAPT_*_ADT macros supporting type deduction
2014-10-23 08:48:07 +08:00
Damien Buhl (alias daminetreg) e50f5852e4 Changes the test cases, as the behaviour about const-qualifier for
attribute_type and attribute_const_type when type is deduced can be
different than when the type is provided.

Indeed when specifying attribute_type and attribute_const_type manually
it's possible to provide a type which isn't const qualified as
attribute_const_type. When deducing the types from the get_expr, a const
and a non const qualified type is taken respectively for attribute_type
and attribute_const_type.
2014-10-22 22:06:31 +02:00
Damien Buhl (alias daminetreg) 020b22f9b9 Fix test for compiler not supporting BOOST_PP_VARIADIC. 2014-10-20 22:32:28 +02:00
Damien Buhl (alias daminetreg) 3a28c3fd81 Updates the doc of ADAPT_ADTs macros 2014-10-20 21:35:01 +02:00
Damien Buhl (alias daminetreg) cfcdbe1195 Change adapt_assoc_tpl_adt to test type inference from templated type. 2014-10-20 21:25:07 +02:00
Damien Buhl (alias daminetreg) 03ba146d84 lvalue typedef for acess::struct_member is a dependent scope to templated
parameter when used within BOOST_FUSION_ADAPT_ASSOC_TPL_ADT.

This fixes test sequence/adapt_assoc_tpl_adt.cpp.
2014-10-20 12:54:31 +02:00
Damien Buhl (alias daminetreg) 2b5da49628 lvalue access::struct_member was wrongly set to be adt_attribute_proxy<> instead of adt_attribute_proxy<>::type. Shame on me. 2014-10-12 16:25:59 +02:00
Damien Buhl (alias daminetreg) cd0d3ce09a add comments for readability. 2014-10-12 14:51:34 +02:00
Damien Buhl (alias daminetreg) 644d72ccfe adds type deduction support for BOOST_FUSION_ADAPT_ASSOC_ADT. 2014-10-12 14:51:04 +02:00
Damien Buhl (alias daminetreg) 103b02fda2 add test for BOOST_FUSION_ADAPT_ADT_NAMED deducing types. 2014-10-12 12:50:56 +02:00
Damien Buhl (alias daminetreg) c8ffc6498b add documentation for BOOST_FUSION_ADAPT_ADT and type deduction. 2014-10-07 21:39:18 +02:00
Damien Buhl (alias daminetreg) aa7b0a6972 Factoring out the workaround to access last variadic parameter.
Indeed when some parameter are BOOST_PP_EMPTY the last parameter is
accessed correctly but results in a compilation error which doesn't stop
some compiler (e.g. g++) to go through the preprocessing pass and still
compile the binary correctly. But to avoid the error message I used a
workaround which behaves better. I preferred factoring it out to make
clear that there are some reason why this element is strangely accessed.
2014-09-23 23:07:00 +02:00
Damien Buhl (alias daminetreg) 69e67cd1ad BUGFIX: When VARIADICS are active supporting any of the input combination.
That is : BOOST_FUSION_ADAPT_AUTO, omitting type or specifying type.
2014-09-17 00:47:52 +02:00
Damien Buhl (alias daminetreg) f0bc2a2ac1 Fix dependents scopes and typedefs with typename keywords. 2014-08-26 23:32:26 +02:00
Damien Buhl (alias daminetreg) 727f49b49e Improve adapt_adt test to check more case with type deduction. 2014-08-26 22:00:16 +02:00
Damien Buhl (alias daminetreg) 7b089aa589 Add support for BOOST_FUSION_ADAPT_ADT to either deduce types or use specified ones. 2014-08-10 17:09:57 +02:00
Damien Buhl (alias daminetreg) 52d280983b Fix some includes for consistency and use correct accessors macros.
Since we have accessors macros for wrapped attributes we better use them,
to improve readability of the macros.
2014-08-10 15:27:55 +02:00
Damien Buhl (alias daminetreg) fe3682ac02 add type deduction support to BOOST_FUSION_ADAPT_ADT_C_BASE. 2014-08-10 15:15:31 +02:00
Damien Buhl (alias daminetreg) c8e4172021 Fix indentation. 2014-08-10 15:11:34 +02:00
Joel de Guzman 904ec1e676 Merge pull request #13 from daminetreg/fusion_adapters
BOOST_FUSION_ADAPT_ASSOC_STRUCT* deducing types
2014-07-30 06:03:39 +08:00
Damien Buhl (alias daminetreg) 0715e996e2 Fix the DEFINE_ASSOC_STRUCT macros to use specific FILLER macros, because they cannot need type deduction. 2014-07-29 22:24:23 +02:00
Damien Buhl (alias daminetreg) 047b052548 Add missing include. 2014-07-29 22:22:54 +02:00
Damien Buhl (alias daminetreg) fcb579f208 Documented BOOST_FUSION_ADAT_ASSOC* macros with type inference. 2014-07-27 17:19:15 +02:00
Damien Buhl (alias daminetreg) a54c543dd7 Adapted test cases for adapt_assoc_tpl_struct with type deduction. 2014-07-27 16:31:15 +02:00
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
Joel de Guzman 1ab5eef418 Merge pull request #11 from daminetreg/fusion_adapters
ADAPT_STRUCT_NAMED macros supporting type deduction
2014-06-26 03:57:43 +08: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
Joel de Guzman f64c396c66 Merge pull request #10 from daminetreg/fusion_adapters
Fixes the DEFINE_STRUCT* macros after addition of type deduction for ADAPT_STRUCT
2014-06-18 05:54:22 +08: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
Joel de Guzman f022949764 Merge pull request #9 from daminetreg/fusion_adapters
Version of ADAPT_STRUCT that does not require specifying the types of the fields
2014-06-15 08:42:32 +08: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