functor.h File Reference

#include <comet/config.h>
#include <comet/typelist.h>
#include <comet/type_traits.h>
#include <memory>

Include dependency graph for functor.h:

Include dependency graph

Go to the source code of this file.

Namespaces

namespace  comet
namespace  comet::detail

Classes

struct  comet::detail::parameter_type_aux<>
struct  comet::detail::parameter_type_aux<>::X< T >
struct  comet::detail::parameter_type_aux< true >
struct  comet::detail::parameter_type_aux< true >::X< T >
struct  comet::parameter_type< T >
struct  comet::parameter_types< LIST >
class  comet::functor_impl< R, LIST >
class  comet::functor< R, LIST >

Defines

#define COMET_PARTIAL_NAME(name)   X
#define COMET_PARTIAL_NS   ::X
#define COMET_DEFINE_PARTIAL(X1, X2, name)
#define COMET_SPECIALISE_PARTIAL(SX1, X2, name)
#define COMET_DEFINE_PARTIAL2(X1, X2, X3, name)
#define COMET_SPECIALISE_PARTIAL2(SX1, X2, X3, name)
#define COMET_DEFINE_PARTIAL3(X1, X2, X3, X4, name)
#define COMET_SPECIALISE_PARTIAL3(SX1, X2, X3, X4, name)
#define COMET_CLOSE_PARTIAL()   };

Functions

 COMET_DEFINE_PARTIAL2 (int L, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (0, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (1, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (2, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (3, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (4, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (5, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (6, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (7, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (8, typename R, typename LIST, functor_impl_aux)
 COMET_SPECIALISE_PARTIAL2 (9, typename R, typename LIST, functor_impl_aux)
 COMET_DEFINE_PARTIAL2 (typename RT, typename PF, typename FUN, functor_handler)
 COMET_SPECIALISE_PARTIAL2 (void, typename PF, typename FUN, functor_handler)
 COMET_DEFINE_PARTIAL3 (typename RT, typename PF, typename OBJ_PTR, typename MEMFN_PTR, memfun_handler)
 COMET_SPECIALISE_PARTIAL3 (void, typename PF, typename OBJ_PTR, typename MEMFN_PTR, memfun_handler)
 COMET_DEFINE_PARTIAL (typename R, typename LIST, functor_operators)
 COMET_SPECIALISE_PARTIAL (void, typename LIST, functor_operators)
 COMET_DEFINE_PARTIAL (typename R, typename LIST, chainer)
 COMET_SPECIALISE_PARTIAL (void, typename LIST, chainer)
 COMET_DEFINE_PARTIAL (typename R, typename LIST, binder_first)
 COMET_SPECIALISE_PARTIAL (void, typename LIST, binder_first)


Detailed Description

Functor implementation.

functor.h is based on the functor library presented in Chapter 5 of "Modern C++ Design" by Andrei Alexandrescu.