File indexing completed on 2025-01-18 09:31:08
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DEFINE_ASSOC_STRUCT_HPP
0009 #define BOOST_FUSION_ADAPTED_STRUCT_DEFINE_ASSOC_STRUCT_HPP
0010
0011 #include <boost/fusion/support/config.hpp>
0012 #include <boost/fusion/adapted/struct/adapt_assoc_struct.hpp>
0013 #include <boost/fusion/adapted/struct/detail/define_struct.hpp>
0014 #include <boost/preprocessor/cat.hpp>
0015
0016 #define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(X, Y, Z) \
0017 ((X, Y, Z)) BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1
0018 #define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1(X, Y, Z) \
0019 ((X, Y, Z)) BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0
0020 #define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0_END
0021 #define BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_1_END
0022
0023 #define BOOST_FUSION_DEFINE_ASSOC_TPL_STRUCT( \
0024 TEMPLATE_PARAMS_SEQ, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
0025 \
0026 BOOST_FUSION_DEFINE_TPL_STRUCT_IMPL( \
0027 TEMPLATE_PARAMS_SEQ, \
0028 (0)NAMESPACE_SEQ, \
0029 NAME, \
0030 BOOST_PP_CAT( \
0031 BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
0032 3) \
0033 \
0034 BOOST_FUSION_ADAPT_ASSOC_TPL_STRUCT( \
0035 TEMPLATE_PARAMS_SEQ, \
0036 (BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ) NAME)\
0037 TEMPLATE_PARAMS_SEQ, \
0038 ATTRIBUTES)
0039
0040 #define BOOST_FUSION_DEFINE_ASSOC_STRUCT(NAMESPACE_SEQ, NAME, ATTRIBUTES) \
0041 BOOST_FUSION_DEFINE_STRUCT_IMPL( \
0042 (0)NAMESPACE_SEQ, \
0043 NAME, \
0044 BOOST_PP_CAT( \
0045 BOOST_FUSION_DEFINE_ASSOC_STRUCT_FILLER_0(0,0,0)ATTRIBUTES,_END), \
0046 3) \
0047 \
0048 BOOST_FUSION_ADAPT_ASSOC_STRUCT( \
0049 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ) NAME, \
0050 ATTRIBUTES)
0051
0052 #endif