1 /*============================================================================= 2 Copyright (c) 2010-2011 Christopher Schmidt 3 4 Distributed under the Boost Software License, Version 1.0. (See accompanying 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 6 ==============================================================================*/ 7 8 #ifndef BOOST_FUSION_ADAPTED_STRUCT_DEFINE_STRUCT_HPP 9 #define BOOST_FUSION_ADAPTED_STRUCT_DEFINE_STRUCT_HPP 10 11 #include <boost/fusion/support/config.hpp> 12 #include <boost/fusion/adapted/struct/adapt_struct.hpp> 13 #include <boost/fusion/adapted/struct/detail/define_struct.hpp> 14 #include <boost/preprocessor/cat.hpp> 15 16 #define BOOST_FUSION_DEFINE_TPL_STRUCT( \ 17 TEMPLATE_PARAMS_SEQ, NAMESPACE_SEQ, NAME, ATTRIBUTES) \ 18 \ 19 BOOST_FUSION_DEFINE_TPL_STRUCT_IMPL( \ 20 TEMPLATE_PARAMS_SEQ, \ 21 (0)NAMESPACE_SEQ, \ 22 NAME, \ 23 BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \ 24 2) \ 25 \ 26 BOOST_FUSION_ADAPT_TPL_STRUCT( \ 27 TEMPLATE_PARAMS_SEQ, \ 28 (BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ) NAME)\ 29 TEMPLATE_PARAMS_SEQ, \ 30 ATTRIBUTES) 31 32 #define BOOST_FUSION_DEFINE_STRUCT(NAMESPACE_SEQ, NAME, ATTRIBUTES) \ 33 BOOST_FUSION_DEFINE_STRUCT_IMPL( \ 34 (0)NAMESPACE_SEQ, \ 35 NAME, \ 36 BOOST_PP_CAT(BOOST_FUSION_DEFINE_STRUCT_FILLER_0(0,0)ATTRIBUTES,_END), \ 37 2) \ 38 \ 39 BOOST_FUSION_ADAPT_STRUCT( \ 40 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ) NAME, \ 41 ATTRIBUTES) 42 43 #endif 44