#include <sysc/packages/boost/utility/detail/in_place_factory_prefix.hpp>#include <sysc/packages/boost/utility/detail/in_place_factory_suffix.hpp>

Go to the source code of this file.
Namespaces | |
| namespace | boost |
Classes | |
| class | boost::typed_in_place_factory_base |
Defines | |
| #define | BOOST_DEFINE_TYPED_INPLACE_FACTORY_CLASS(z, n, _) |
| #define BOOST_DEFINE_TYPED_INPLACE_FACTORY_CLASS | ( | z, | |||
| n, | |||||
| _ | ) |
Value:
template< class T, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n),class A) > \ class BOOST_PP_CAT(typed_in_place_factory, BOOST_PP_INC(n) ) : public typed_in_place_factory_base \ { \ public: \ \ typedef T value_type ; \ \ BOOST_PP_CAT(typed_in_place_factory, BOOST_PP_INC(n) ) ( BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_INC(n),A,const& a) ) \ : \ BOOST_PP_ENUM( BOOST_PP_INC(n), BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_INIT, _ ) \ {} \ \ void apply ( void* address ) const \ { \ new ( address ) T ( BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), m_a ) ) ; \ } \ \ BOOST_PP_REPEAT( BOOST_PP_INC(n), BOOST_DEFINE_INPLACE_FACTORY_CLASS_MEMBER_DECL, _) \ } ; \ \ template< class T, BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n),class A) > \ BOOST_PP_CAT(typed_in_place_factory, BOOST_PP_INC(n) ) < T , BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), A ) > \ in_place ( BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_INC(n),A, const& a) ) \ { \ return BOOST_PP_CAT(typed_in_place_factory, BOOST_PP_INC(n) ) < T, BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), A ) > \ ( BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), a ) ) ; \ } ; \
Definition at line 21 of file typed_in_place_factory.hpp.
1.5.5