MEL
Microthread & Execution library
NullFunctorImpl.h
1 
2 namespace mel
3 {
4  namespace mpl
5  {
6 
7  #if VARIABLE_NUM_ARGS == VARIABLE_MAX_ARGS
9  template < VARIABLE_ARGS>
10  class NullFunctor_Base
11  {
12  public:
13  NullFunctor_Base(){};
14  template <class F2>
15  bool operator == ( const F2& ob2 ) const
16  {
17  return Conversion<F2, NullFunctor_Base<VARIABLE_ARGS_DECL> >::exists ;
18  }
19  };
21 
30  template < VARIABLE_ARGS>
31  class NullFunctor
33  : public NullFunctor_Base< VARIABLE_ARGS_DECL>
35  {
36  public:
37  NullFunctor(){};
38  void operator()( VARIABLE_ARGS_IMPL )
39  {
40  }
41  };
42 
43  //specialization for void arguments
44  template <>
45  class NullFunctor<void> :public NullFunctor_Base<void>
46  {
47  public:
48  NullFunctor(){};
49  void operator()( )
50  {
51  }
52 
53  };
54 
55  #else
57  template < VARIABLE_ARGS>
58  class NullFunctor_Base<VARIABLE_ARGS_DECL,void>
59  {
60  public:
61  NullFunctor_Base(){};
62  template <class F2>
63  bool operator == ( const F2& ob2 ) const
64  {
65  return Conversion<F2, NullFunctor_Base<VARIABLE_ARGS_DECL,void> >::exists;
66  }
67  };
69  template < VARIABLE_ARGS >
70  class NullFunctor<VARIABLE_ARGS_DECL,void> : public NullFunctor_Base< VARIABLE_ARGS_DECL>
71  {
72  public:
73  NullFunctor(){};
74  void operator()( VARIABLE_ARGS_IMPL )
75  {
76  }
77  };
78 
79 
80  #endif
81  }
82 }
Definition: NullFunctorImpl.h:35
Small operator==(const AnyType &, const AnyType &)
Definition: Callback_Impl.h:11