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 BOOST_DELETED_FUNCTION(NAME& operator= (NAME const&)) \ 32 }; \ 33 \ 34 BOOST_FUSION_ADAPT_STRUCT_NAMESPACE_DEFINITION_END(NAMESPACE_SEQ) 35 36 #define BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE( \ 37 WRAPPED_TYPE, NAMESPACE_SEQ, NAME) \ 38 \ 39 BOOST_FUSION_ADAPT_STRUCT_DEFINE_PROXY_TYPE_IMPL( \ 40 WRAPPED_TYPE, (0)NAMESPACE_SEQ, NAME) 41 42 #endif 43