5 #ifndef __BASE__FACTORY_H__
6 #define __BASE__FACTORY_H__
10 #define BOOST_FUNCTIONAL_FORWARD_ADAPTER_MAX_ARITY 8
15 #include <boost/function.hpp>
16 #include <boost/functional/factory.hpp>
17 #include <boost/functional/forward_adapter.hpp>
18 #include <boost/type_traits/is_same.hpp>
19 #include <boost/utility/enable_if.hpp>
25 template<
class Base,
class ... Args>
34 template<
class Base,
class Impl>
36 template<
class ...Args>
static
39 return static_cast<typename
45 template<
class Base,
class Impl,
class ... Args>
46 static typename FactoryTypes<Base, Args...>::BasePointer
50 <Base, Args...
>::BasePointer> (
new Impl (args...));
53 template<
class Base,
class ... Args>
56 template<
class Base,
class ... Args>
67 template<
class Base,
class Impl,
class ... Args>
74 template<
class Base,
int p>
78 template<
class Base,
class ... Args>
87 template<
class Base,
class ... Args>
88 static typename FactoryTypes<Base, Args...>::BasePointer
96 template<
class BaseType,
int par,
class ...Args>
97 static typename FactoryTypes<BaseType, Args...>::BasePointer
typename FactoryTypes< Base, Args...>::Signature Signature
typename FactoryTypes< Base, Args...>::FunctionType FunctionType
static DefaultLinkType default_link_
static FactoryTypes< Base, Args...>::BasePointer NewInstance(Args...args)
static FunctionType create_func_
static FactoryTypes< Base, Args...>::BasePointer new_instance(Args &&...args)
static FactoryTypes< BaseType, Args...>::BasePointer Create(Args &&...args)
BasePointer(Args...) Signature
std::function< Signature > FunctionType
static FactoryTypes< Base, Args...>::BasePointer Create(Args...args)