]>
Commit | Line | Data |
---|---|---|
1 | /*============================================================================= | |
2 | Copyright (c) 2001-2007 Joel de Guzman | |
3 | Copyright (c) 2009-2010 Hartmut Kaiser | |
4 | Copyright (c) 2010-2011 Christopher Schmidt | |
5 | ||
6 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
7 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
8 | ==============================================================================*/ | |
9 | ||
10 | #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_NAMED_HPP | |
11 | #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_NAMED_HPP | |
12 | ||
13 | #include <boost/fusion/support/config.hpp> | |
14 | #include <boost/fusion/adapted/struct/adapt_struct.hpp> | |
15 | #include <boost/fusion/adapted/struct/detail/proxy_type.hpp> | |
16 | #include <boost/preprocessor/config/config.hpp> | |
17 | ||
18 | #ifdef BOOST_PP_VARIADICS | |
19 | ||
20 | # define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \ | |
21 | WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ...) \ | |
22 | \ | |
23 | BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \ | |
24 | WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \ | |
25 | \ | |
26 | BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \ | |
27 | BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \ | |
28 | (0)NAMESPACE_SEQ)NAME, \ | |
29 | __VA_ARGS__) | |
30 | ||
31 | # define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ...) \ | |
32 | BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \ | |
33 | WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,__VA_ARGS__) | |
34 | ||
35 | ||
36 | #else // BOOST_PP_VARIADICS | |
37 | ||
38 | # define BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \ | |
39 | WRAPPED_TYPE, NAMESPACE_SEQ, NAME, ATTRIBUTES) \ | |
40 | \ | |
41 | BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \ | |
42 | WRAPPED_TYPE,(0)NAMESPACE_SEQ,NAME) \ | |
43 | \ | |
44 | BOOST_FUSION_ADAPT_STRUCT_AS_VIEW( \ | |
45 | BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DECLARATION( \ | |
46 | (0)NAMESPACE_SEQ)NAME, \ | |
47 | ATTRIBUTES) | |
48 | ||
49 | # define BOOST_FUSION_ADAPT_STRUCT_NAMED(WRAPPED_TYPE, NAME, ATTRIBUTES) \ | |
50 | BOOST_FUSION_ADAPT_STRUCT_NAMED_NS( \ | |
51 | WRAPPED_TYPE,(boost)(fusion)(adapted),NAME,ATTRIBUTES) | |
52 | ||
53 | #endif | |
54 | ||
55 | #endif |