summaryrefslogtreecommitdiff
path: root/boost/fusion/adapted/struct/detail/define_struct.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/fusion/adapted/struct/detail/define_struct.hpp')
-rw-r--r--boost/fusion/adapted/struct/detail/define_struct.hpp27
1 files changed, 17 insertions, 10 deletions
diff --git a/boost/fusion/adapted/struct/detail/define_struct.hpp b/boost/fusion/adapted/struct/detail/define_struct.hpp
index 44d99f06b4..25542920ad 100644
--- a/boost/fusion/adapted/struct/detail/define_struct.hpp
+++ b/boost/fusion/adapted/struct/detail/define_struct.hpp
@@ -34,6 +34,13 @@
#include <boost/type_traits/is_convertible.hpp>
#include <boost/utility/enable_if.hpp>
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_0(X, Y) \
+ ((X, Y)) BOOST_FUSION_DEFINE_STRUCT_FILLER_1
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_1(X, Y) \
+ ((X, Y)) BOOST_FUSION_DEFINE_STRUCT_FILLER_0
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_0_END
+#define BOOST_FUSION_DEFINE_STRUCT_FILLER_1_END
+
#define BOOST_FUSION_DEFINE_STRUCT_COPY_CTOR_FILLER_I( \
R, ATTRIBUTE_TUPEL_SIZE, I, ATTRIBUTE) \
\
@@ -62,7 +69,7 @@
ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
self_type& \
operator=(Seq const& seq) \
{ \
@@ -121,7 +128,7 @@
ATTRIBUTE_TUPEL_SIZE, \
ATTRIBUTES_SEQ) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME() \
: BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
@@ -130,7 +137,7 @@
ATTRIBUTES_SEQ) \
{} \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(self_type const& other_self) \
: BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
@@ -140,7 +147,7 @@
{} \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(Seq const& seq \
BOOST_PP_IF( \
BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)), \
@@ -160,7 +167,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_1( \
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
NAME(boost::call_traits< \
BOOST_PP_TUPLE_ELEM( \
@@ -173,7 +180,7 @@
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_1( \
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
explicit \
NAME(typename boost::call_traits< \
typename boost::fusion::detail::get_first_arg< \
@@ -210,7 +217,7 @@
#define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_N( \
TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_ARG_I, \
@@ -238,7 +245,7 @@
#define BOOST_FUSION_DEFINE_STRUCT_CTOR_N( \
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
1, \
BOOST_FUSION_DEFINE_STRUCT_CTOR_ARG_I, \
@@ -280,12 +287,12 @@
NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
NAME(Seq const&) \
{} \
\
template<typename Seq> \
- BOOST_FUSION_GPU_ENABLED \
+ BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
self_type& \
operator=(Seq const& seq) \
{ \