diff options
Diffstat (limited to 'libs/sigc++2/sigc++/functors/functor_trait.h')
-rw-r--r-- | libs/sigc++2/sigc++/functors/functor_trait.h | 307 |
1 files changed, 0 insertions, 307 deletions
diff --git a/libs/sigc++2/sigc++/functors/functor_trait.h b/libs/sigc++2/sigc++/functors/functor_trait.h deleted file mode 100644 index 0b7475273f..0000000000 --- a/libs/sigc++2/sigc++/functors/functor_trait.h +++ /dev/null @@ -1,307 +0,0 @@ -// -*- c++ -*- -/* Do not edit! -- generated file */ -/* - Trait functor_trait<functor>: - - This trait allows the user to specific what is the return type - of any type. It has been overloaded to detect the return type and - the functor version of function pointers and class methods as well. - - To populate the return type of user defined and third party functors - use the macro SIGC_FUNCTOR_TRAIT(T_functor,T_return) in - namespace sigc. Multi-type functors are only partly supported. - Try specifying the return type of the functor's operator()() overload. - - Alternatively, you can derive your functors from functor_base and - place "typedef T_return result_type;" in the class definition. - - Use SIGC_FUNCTORS_HAVE_RESULT_TYPE if you want sigc++ to assume that - result_type is defined in all user defined or 3rd-party functors - (except those you specify a return type explicitly with SIGC_FUNCTOR_TRAIT()). - -*/ -#ifndef _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ -#define _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ -#include <sigc++/type_traits.h> - - -namespace sigc { - -/** nil_ struct type. - * The nil_ struct type is used as default template argument in the - * unnumbered sigc::signal and sigc::slot templates. - * - * @ingroup signal - * @ingroup slot - */ -struct nil_; - - -/** @defgroup functors Functors - * Functors are copyable types that define operator()(). - * - * Types that define operator()() overloads with different return types are referred to - * as multi-type functors. Multi-type functors are only partly supported in libsigc++. - * - * Closures are functors that store all information needed to invoke a callback from operator()(). - * - * Adaptors are functors that alter the signature of a functor's operator()(). - * - * libsigc++ defines numerous functors, closures and adaptors. - * Since libsigc++ is a callback libaray, most functors are also closures. - * The documentation doesn't distinguish between functors and closures. - * - * The basic functor types libsigc++ provides are created with ptr_fun() and mem_fun() - * and can be converted into slots implicitly. - * The set of adaptors that ships with libsigc++ is documented in the equally named module. - */ - -/** A hint to the compiler. - * All functors which define @p result_type should publically inherit from this hint. - * - * @ingroup functors - */ -struct functor_base {}; - - -template <class T_functor, bool I_derives_functor_base=is_base_and_derived<functor_base,T_functor>::value> -struct functor_trait -{ - typedef void result_type; - typedef T_functor functor_type; -}; - -template <class T_functor> -struct functor_trait<T_functor,true> -{ - typedef typename T_functor::result_type result_type; - typedef T_functor functor_type; -}; - -/** If you want to mix functors from a different library with libsigc++ and - * these functors define @p result_type simply use this macro inside namespace sigc like so: - * @code - * namespace sigc { SIGC_FUNCTORS_HAVE_RESULT_TYPE } - * @endcode - * - * @ingroup functors - */ -#define SIGC_FUNCTORS_HAVE_RESULT_TYPE \ -template <class T_functor> \ -struct functor_trait<T_functor,false> \ -{ \ - typedef typename T_functor::result_type result_type; \ - typedef T_functor functor_type; \ -}; - -/** If you want to mix functors from a different library with libsigc++ and - * these functors don't define @p result_type use this macro inside namespace sigc - * to expose the return type of the functors like so: - * @code - * namespace sigc { - * SIGC_FUNCTOR_TRAIT(first_functor_type, return_type_of_first_functor_type) - * SIGC_FUNCTOR_TRAIT(second_functor_type, return_type_of_second_functor_type) - * ... - * } - * @endcode - * - * @ingroup functors - */ -#define SIGC_FUNCTOR_TRAIT(T_functor,T_return) \ -template <> \ -struct functor_trait<T_functor,false> \ -{ \ - typedef T_return result_type; \ - typedef T_functor functor_type; \ -}; - -// detect the return type and the functor version of non-functor types. -template <class T_return> class pointer_functor0; -template <class T_return> -struct functor_trait<T_return (*)(), false> -{ - typedef T_return result_type; - typedef pointer_functor0<T_return> functor_type; -}; - -template <class T_arg1, class T_return> class pointer_functor1; -template <class T_arg1, class T_return> -struct functor_trait<T_return (*)(T_arg1), false> -{ - typedef T_return result_type; - typedef pointer_functor1<T_arg1, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2, class T_return> class pointer_functor2; -template <class T_arg1,class T_arg2, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2), false> -{ - typedef T_return result_type; - typedef pointer_functor2<T_arg1,T_arg2, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3, class T_return> class pointer_functor3; -template <class T_arg1,class T_arg2,class T_arg3, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2,T_arg3), false> -{ - typedef T_return result_type; - typedef pointer_functor3<T_arg1,T_arg2,T_arg3, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return> class pointer_functor4; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2,T_arg3,T_arg4), false> -{ - typedef T_return result_type; - typedef pointer_functor4<T_arg1,T_arg2,T_arg3,T_arg4, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return> class pointer_functor5; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5), false> -{ - typedef T_return result_type; - typedef pointer_functor5<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return> class pointer_functor6; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6), false> -{ - typedef T_return result_type; - typedef pointer_functor6<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_return> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return> class pointer_functor7; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return> -struct functor_trait<T_return (*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7), false> -{ - typedef T_return result_type; - typedef pointer_functor7<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_return> functor_type; -}; - - -template <class T_return, class T_obj> class mem_functor0; -template <class T_return, class T_obj> class const_mem_functor0; -template <class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(), false> -{ - typedef T_return result_type; - typedef mem_functor0<T_return, T_obj> functor_type; -}; -template <class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)() const, false> -{ - typedef T_return result_type; - typedef const_mem_functor0<T_return, T_obj> functor_type; -}; - -template <class T_arg1, class T_return, class T_obj> class mem_functor1; -template <class T_arg1, class T_return, class T_obj> class const_mem_functor1; -template <class T_arg1, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1), false> -{ - typedef T_return result_type; - typedef mem_functor1<T_arg1, T_return, T_obj> functor_type; -}; -template <class T_arg1, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor1<T_arg1, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2, class T_return, class T_obj> class mem_functor2; -template <class T_arg1,class T_arg2, class T_return, class T_obj> class const_mem_functor2; -template <class T_arg1,class T_arg2, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2), false> -{ - typedef T_return result_type; - typedef mem_functor2<T_arg1,T_arg2, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor2<T_arg1,T_arg2, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3, class T_return, class T_obj> class mem_functor3; -template <class T_arg1,class T_arg2,class T_arg3, class T_return, class T_obj> class const_mem_functor3; -template <class T_arg1,class T_arg2,class T_arg3, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3), false> -{ - typedef T_return result_type; - typedef mem_functor3<T_arg1,T_arg2,T_arg3, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2,class T_arg3, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor3<T_arg1,T_arg2,T_arg3, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return, class T_obj> class mem_functor4; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return, class T_obj> class const_mem_functor4; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4), false> -{ - typedef T_return result_type; - typedef mem_functor4<T_arg1,T_arg2,T_arg3,T_arg4, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor4<T_arg1,T_arg2,T_arg3,T_arg4, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return, class T_obj> class mem_functor5; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return, class T_obj> class const_mem_functor5; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5), false> -{ - typedef T_return result_type; - typedef mem_functor5<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor5<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return, class T_obj> class mem_functor6; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return, class T_obj> class const_mem_functor6; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6), false> -{ - typedef T_return result_type; - typedef mem_functor6<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor6<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_return, T_obj> functor_type; -}; - -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return, class T_obj> class mem_functor7; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return, class T_obj> class const_mem_functor7; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7), false> -{ - typedef T_return result_type; - typedef mem_functor7<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_return, T_obj> functor_type; -}; -template <class T_arg1,class T_arg2,class T_arg3,class T_arg4,class T_arg5,class T_arg6,class T_arg7, class T_return, class T_obj> -struct functor_trait<T_return (T_obj::*)(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) const, false> -{ - typedef T_return result_type; - typedef const_mem_functor7<T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_return, T_obj> functor_type; -}; - - - -} /* namespace sigc */ -#endif /* _SIGC_FUNCTORS_MACROS_FUNCTOR_TRAITHM4_ */ |