#include <sysc/packages/boost/utility/detail/in_place_factory_prefix.hpp>#include <sysc/packages/boost/type.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::in_place_factory_base |
Defines | |
| #define | BOOST_DEFINE_INPLACE_FACTORY_CLASS(z, n, _) |
| #define BOOST_DEFINE_INPLACE_FACTORY_CLASS | ( | z, | |||
| n, | |||||
| _ | ) |
Value:
template< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n),class A) > \ class BOOST_PP_CAT(in_place_factory, BOOST_PP_INC(n) ) : public in_place_factory_base \ { \ public: \ \ BOOST_PP_CAT(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, _ ) \ {} \ \ template<class T> \ void apply ( void* address BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(T) ) 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< BOOST_PP_ENUM_PARAMS(BOOST_PP_INC(n),class A) > \ BOOST_PP_CAT(in_place_factory, BOOST_PP_INC(n) ) < 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(in_place_factory, BOOST_PP_INC(n) ) < BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), A ) > \ ( BOOST_PP_ENUM_PARAMS( BOOST_PP_INC(n), a ) ) ; \ } ; \
Definition at line 23 of file in_place_factory.hpp.
1.5.5