Chris@16
|
1 /*=============================================================================
|
Chris@16
|
2 Copyright (c) 2001-2007 Joel de Guzman
|
Chris@16
|
3 Copyright (c) 2009-2010 Hartmut Kaiser
|
Chris@16
|
4 Copyright (c) 2010-2011 Christopher Schmidt
|
Chris@16
|
5
|
Chris@16
|
6 Distributed under the Boost Software License, Version 1.0. (See accompanying
|
Chris@16
|
7 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
8 ==============================================================================*/
|
Chris@16
|
9
|
Chris@16
|
10 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_NAMED_HPP
|
Chris@16
|
11 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_NAMED_HPP
|
Chris@16
|
12
|
Chris@16
|
13 #include <boost/fusion/adapted/struct/adapt_struct.hpp>
|
Chris@16
|
14 #include <boost/fusion/adapted/struct/detail/proxy_type.hpp>
|
Chris@16
|
15 #include <boost/preprocessor/empty.hpp>
|
Chris@16
|
16
|
Chris@16
|
17 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0(X, Y) \
|
Chris@16
|
18 (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1
|
Chris@16
|
19 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1(X, Y) \
|
Chris@16
|
20 (X, obj.Y) BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0
|
Chris@16
|
21 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0_END
|
Chris@16
|
22 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_1_END
|
Chris@16
|
23
|
Chris@16
|
24 #define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
|
Chris@16
|
25 WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \
|
Chris@16
|
26 \
|
Chris@16
|
27 BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \
|
Chris@16
|
28 WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \
|
Chris@16
|
29 \
|
Chris@16
|
30 BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \
|
Chris@16
|
31 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION((0)NAMESPACE_SEQ)NAME, \
|
Chris@16
|
32 BOOST_PP_CAT( \
|
Chris@16
|
33 BOOST_FUSION_ADAPT_STRUCT_NAMED_FILLER_0 ATTRIBUTES,_END))
|
Chris@16
|
34
|
Chris@16
|
35 #define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \
|
Chris@16
|
36 BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \
|
Chris@16
|
37 WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES)
|
Chris@16
|
38
|
Chris@16
|
39 #endif
|