1 /*============================================================================= 2 Copyright (c) 2009-2010 Hartmut Kaiser 3 Copyright (c) 2010 Christopher Schmidt 4 5 Distributed under the Boost Software License, Version 1.0. (See accompanying 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 7 ==============================================================================*/ 8 9 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_PROXY_TYPE_HPP 10 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_PROXY_TYPE_HPP 11 12 #include <boost/fusion/support/config.hpp> 13 #include <boost/fusion/adapted/struct/detail/namespace.hpp> 14 15 #define BOOST_FUSION_PROXY_PREFIX() obj. 16 17 #define BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \ 18 WRAPPED_TYPE,NAMESPACE_SEQ,NAME) \ 19 \ 20 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DEFINITION_BEGIN(NAMESPACE_SEQ) \ 21 \ 22 struct NAME \ 23 { \ 24 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \ 25 NAME(WRAPPED_TYPE& in_obj) \ 26 : obj(in_obj) \ 27 {} \ 28 \ 29 WRAPPED_TYPE& obj; \ 30 \ 31 private: \ 32 NAME& operator= (NAME const&); \ 33 }; \ 34 \ 35 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DEFINITION_END(NAMESPACE_SEQ) 36 37 #define BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE( \ 38 WRAPPED_TYPE, NAMESPACE_SEQ, NAME) \ 39 \ 40 BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \ 41 WRAPPED_TYPE, (0)NAMESPACE_SEQ, NAME) 42 43 #endif 44