mirror of
https://github.com/boostorg/move.git
synced 2025-08-02 13:44:28 +02:00
Used macros to avoid code repetition in make_unique
This commit is contained in:
@@ -21,6 +21,9 @@
|
|||||||
#include <boost/move/unique_ptr.hpp>
|
#include <boost/move/unique_ptr.hpp>
|
||||||
#include <cstddef> //for std::size_t
|
#include <cstddef> //for std::size_t
|
||||||
#include <boost/move/detail/unique_ptr_meta_utils.hpp>
|
#include <boost/move/detail/unique_ptr_meta_utils.hpp>
|
||||||
|
#ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# include <boost/move/detail/fwd_macros.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
//!\file
|
//!\file
|
||||||
//! Defines "make_unique" functions, which are factories to create instances
|
//! Defines "make_unique" functions, which are factories to create instances
|
||||||
@@ -92,419 +95,19 @@ inline BOOST_MOVE_DOC1ST(unique_ptr<T>,
|
|||||||
{ return unique_ptr<T>(new (*boost::move_upmu::pnothrow)T(::boost::forward<Args>(args)...)); }
|
{ return unique_ptr<T>(new (*boost::move_upmu::pnothrow)T(::boost::forward<Args>(args)...)); }
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
#define BOOST_MOVE_MAKE_UNIQUE_CODE(N)\
|
||||||
//0 arg
|
template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
||||||
template<class T>
|
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array\
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
make_unique( BOOST_MOVE_UREF##N)\
|
||||||
make_unique()
|
{ return unique_ptr<T>( new T( BOOST_MOVE_FWD##N ) ); }\
|
||||||
{ return unique_ptr<T>(new T()); }
|
\
|
||||||
|
template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
|
||||||
template<class T>
|
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array\
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
make_unique_nothrow( BOOST_MOVE_UREF##N)\
|
||||||
make_unique_nothrow()
|
{ return unique_ptr<T>( new (*boost::move_upmu::pnothrow)T ( BOOST_MOVE_FWD##N ) ); }\
|
||||||
{ return unique_ptr<T>(new (*boost::move_upmu::pnothrow)T()); }
|
//
|
||||||
|
BOOST_MOVE_ITERATE_0TO9(BOOST_MOVE_MAKE_UNIQUE_CODE)
|
||||||
//1 arg
|
#undef BOOST_MOVE_MAKE_UNIQUE_CODE
|
||||||
template<class T, class P0>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow( BOOST_FWD_REF(P0) p0
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//2 arg
|
|
||||||
template<class T, class P0, class P1>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//3 arg
|
|
||||||
template<class T, class P0, class P1, class P2>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//4 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//5 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//6 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//7 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
//8 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//9 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
, BOOST_FWD_REF(P8) p8
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
, ::boost::forward<P8>(p8)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
, BOOST_FWD_REF(P8) p8
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
, ::boost::forward<P8>(p8)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
//10 arg
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
, BOOST_FWD_REF(P8) p8
|
|
||||||
, BOOST_FWD_REF(P9) p9
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new T( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
, ::boost::forward<P8>(p8)
|
|
||||||
, ::boost::forward<P9>(p9)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class T, class P0, class P1, class P2, class P3, class P4, class P5, class P6, class P7, class P8, class P9>
|
|
||||||
typename ::boost::move_upmu::unique_ptr_if<T>::t_is_not_array
|
|
||||||
make_unique_nothrow ( BOOST_FWD_REF(P0) p0
|
|
||||||
, BOOST_FWD_REF(P1) p1
|
|
||||||
, BOOST_FWD_REF(P2) p2
|
|
||||||
, BOOST_FWD_REF(P3) p3
|
|
||||||
, BOOST_FWD_REF(P4) p4
|
|
||||||
, BOOST_FWD_REF(P5) p5
|
|
||||||
, BOOST_FWD_REF(P6) p6
|
|
||||||
, BOOST_FWD_REF(P7) p7
|
|
||||||
, BOOST_FWD_REF(P8) p8
|
|
||||||
, BOOST_FWD_REF(P9) p9
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return unique_ptr<T>
|
|
||||||
( new (*boost::move_upmu::pnothrow)T ( ::boost::forward<P0>(p0)
|
|
||||||
, ::boost::forward<P1>(p1)
|
|
||||||
, ::boost::forward<P2>(p2)
|
|
||||||
, ::boost::forward<P3>(p3)
|
|
||||||
, ::boost::forward<P4>(p4)
|
|
||||||
, ::boost::forward<P5>(p5)
|
|
||||||
, ::boost::forward<P6>(p6)
|
|
||||||
, ::boost::forward<P7>(p7)
|
|
||||||
, ::boost::forward<P8>(p8)
|
|
||||||
, ::boost::forward<P9>(p9)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user