Commit Graph

30 Commits

Author SHA1 Message Date
f45c94fa43 Merge remote-tracking branch 'origin/develop' into feature/constexpr 2015-03-04 02:20:52 +09:00
2114bfca6c More constexpr and noexcept support.
Note 1: Forwarding functions are specified as a C++14 constexpr since
std::forward is not a constexpr within C++11.

Note 2: Though I'm not sure why it doesn't compile, some declarations
are specified as a C++14 constexpr or non-constexpr.

Note 3: Boost.Tuple adaptation and TR1-based tuple implementations are
not constexpr.
2015-03-03 02:21:02 +09:00
c6c9d872d3 Factored out the IS_TPL macro. 2015-02-01 17:20:31 +01:00
fc1a60e8e6 Adding typename in front of BOOST_TYPEOF is only needed in MSVC when we check the type of a template. 2015-01-30 18:17:36 +01:00
de43345b34 BUGFIX: Forwarding template parameters for MSVC to deduced_attr_type context thanks to BOOST_FUSION_ADAPT_STRUCT_MSVC_REDEFINE_TEMPLATE_PARAMS. 2015-01-25 23:05:42 +01:00
382c1e5645 BUGFIX: Expands typename for attribute_type only in case it is really a dependent scope. 2015-01-25 21:48:49 +01:00
588896de45 Revert "BUGFIX: MSVC doesn't accept typename to specify a dependent scope within"
This reverts commit 98247fb97f.
2015-01-25 16:14:45 +01:00
98247fb97f BUGFIX: MSVC doesn't accept typename to specify a dependent scope within
template specialization in C++03 as standard specify it.

This also works on GCC 4.6, 4.8.2 and 4.9 in C++11 and C++03, I needlessly
added this during some debugging where the compiler was telling me to do so.

I shouldn't have followed it's advice, as this breaks compatibility with
other compilers.
2015-01-21 00:28:13 +01:00
bc07cac46c Fix use of non-static "obj" in unevaluated expression context of decltype. 2014-11-18 23:39:53 +01:00
b5018586aa Breaking change of BOOST_FUSION_ADAPT_ADT_NAMED and BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED API to be coherent with the expressions of BOOST_FUSION_ADAPT_ADT thanks to correct usage of BOOST_FUSION_PROXY_PREFIX. 2014-11-18 23:38:47 +01:00
18fa262a4e BUGFIX: Use of non-static member in typedef to retrieve the type. clang doesn't allow this even in unevaluated context like decltype. 2014-11-18 22:50:07 +01:00
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
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
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
644d72ccfe adds type deduction support for BOOST_FUSION_ADAPT_ASSOC_ADT. 2014-10-12 14:51:04 +02:00
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
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
f0bc2a2ac1 Fix dependents scopes and typedefs with typename keywords. 2014-08-26 23:32:26 +02:00
7b089aa589 Add support for BOOST_FUSION_ADAPT_ADT to either deduce types or use specified ones. 2014-08-10 17:09:57 +02:00
fe3682ac02 add type deduction support to BOOST_FUSION_ADAPT_ADT_C_BASE. 2014-08-10 15:15:31 +02:00
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
c4f9f0d1b6 gpu-enable functions 2014-01-22 23:55:53 -08:00
8ce40ebd0c Patch by Nathan Ridge to allow BOOST_FUSION_ADAPT_ADT adapted classes to be compared using relational operators.
[SVN r78490]
2012-05-17 01:10:20 +00:00
beec2bff62 Fusion: adapt-macros: allow empty boost.pp sequences; refs #5093
[SVN r68303]
2011-01-19 17:46:05 +00:00
088b8a0201 Fusion: ADAPT_xxxADTxxx; documentation&new testcase
[SVN r65816]
2010-10-07 20:38:54 +00:00
569e23c71c Fusion: BOOST_FUSION_ADAPT_ADT documentation (2)
[SVN r65757]
2010-10-04 21:16:42 +00:00
b761e0e0c0 Fusion: BOOST_FUSION_ADAPT_ADT documentation
[SVN r65756]
2010-10-04 20:50:31 +00:00
21d676dd87 Fusion: added adt_attribute_proxy-getter
[SVN r65728]
2010-10-02 18:39:23 +00:00
f723f870c7 Fusion/Spirit: adt_attribute_proxy refactorization
[SVN r65445]
2010-09-17 20:38:23 +00:00
5adcb5b4d2 Fusion: BOOST_FUSION_ADAPT_xxxCLASSxxx -> BOOST_FUSION_ADAPT_xxxADTxxx
[SVN r65439]
2010-09-16 16:33:25 +00:00