6     #if VARIABLE_NUM_ARGS == VARIABLE_MAX_ARGS 
    8         template <
class TRet, 
class T >
 
    9         class ReturnAdaptor_Base
 
   13             ReturnAdaptor_Base( T&& functor,
typename TypeTraits<TRet>::ParameterType retorno ): mFunctor( std::forward<T>(functor) ),mReturn( retorno )
 
   16             ReturnAdaptor_Base( 
const ReturnAdaptor_Base<TRet,T>& ob2 ): mFunctor( ob2.mFunctor ),
 
   17                 mReturn( ob2.mReturn )
 
   24             return equality( Int2Type< Conversion<F, ReturnAdaptor_Base<TRet,T> >::exists >(),ob2 );
 
   28             bool equality( Int2Type<false>,
const F&)
 const 
   32             bool equality( Int2Type<true >,
const ReturnAdaptor_Base<TRet,T>& ob2)
 const 
   35                 return::mel::mpl::equal<true>( mFunctor, ob2.mFunctor ) &&::mel::mpl::equal<true>( mReturn, ob2.mReturn );
 
   43         class ReturnAdaptor_Base<void,T>
 
   46             ReturnAdaptor_Base( 
const T& functor ): mFunctor( functor )
 
   49             ReturnAdaptor_Base( 
const ReturnAdaptor_Base<void,T>& ob2 ): mFunctor( ob2.mFunctor )
 
   55                 return equality( Int2Type< Conversion<F, ReturnAdaptor_Base<void,T> >::exists >(),ob2 );
 
   59             bool equality( Int2Type<false>,
const F&)
 const 
   63             bool equality( Int2Type<true >,
const ReturnAdaptor_Base<void,T>& ob2)
 const 
   66                 return::mel::mpl::equal<true>( mFunctor, ob2.mFunctor );
 
   86         template <
class TRet, 
class T, VARIABLE_ARGS >
 
   89         : 
public ReturnAdaptor_Base<TRet, T >
 
   96             TRet operator()( VARIABLE_ARGS_IMPL )
 
   98                 ReturnAdaptor_Base<TRet, T >::mFunctor( VARIABLE_ARGS_USE );
 
   99                 return ReturnAdaptor_Base<TRet, T >::mReturn;
 
  110         template <
class T, VARIABLE_ARGS_NODEFAULT >
 
  111         class ReturnAdaptor<void,T,VARIABLE_ARGS_DECL> : 
public ReturnAdaptor_Base<void, T >
 
  114             ReturnAdaptor( 
const T& functor):ReturnAdaptor_Base<void, T >( functor ){};
 
  115             ReturnAdaptor( 
const ReturnAdaptor& ob2 ): ReturnAdaptor_Base<void, T >( ob2 ){};
 
  117             void operator()( VARIABLE_ARGS_IMPL )
 
  119                 mFunctor( VARIABLE_ARGS_USE );
 
  130         class ReturnAdaptor<void,T,void> : 
public ReturnAdaptor_Base<void, T >
 
  134             ReturnAdaptor( T&& functor):ReturnAdaptor_Base<void, T >( std::forward<T>(functor) ){};
 
  135             ReturnAdaptor( 
const ReturnAdaptor& ob2 ): ReturnAdaptor_Base<void, T >( ob2 ){};
 
  139                 ReturnAdaptor_Base<void, T >::mFunctor(  );
 
  150         template <
class TRet,
class T>
 
  151         class ReturnAdaptor<TRet,T,void> : 
public ReturnAdaptor_Base<TRet,T>
 
  154             ReturnAdaptor( T&& functor, 
typename TypeTraits<TRet>::ParameterType retorno ):ReturnAdaptor_Base<TRet,T>( std::forward<T>(functor), retorno ){};
 
  155             ReturnAdaptor( 
const ReturnAdaptor& ob2 ): ReturnAdaptor_Base<TRet,T>( ob2 ){};
 
  158                 ReturnAdaptor_Base<TRet,T>::mFunctor();
 
  159                 return ReturnAdaptor_Base<TRet,T>::mReturn;
 
  168         template < VARIABLE_ARGS_NODEFAULT,
class T,
class TRet > 
inline 
  169         ReturnAdaptor<TRet,T,VARIABLE_ARGS_DECL> returnAdaptor( T&& functor, TRet retorno )
 
  171             return ReturnAdaptor<TRet,T,VARIABLE_ARGS_DECL>( std::forward<T>(functor), retorno );
 
  175         template < 
class T> 
inline 
  176             ReturnAdaptor<void,T,void> returnAdaptorVoid( T&& functor )
 
  178             return ReturnAdaptor<void,T,void>( std::forward<T>(functor));
 
  182         template <
class TRet, 
class T, VARIABLE_ARGS >
 
  183         class ReturnAdaptor<TRet, T, VARIABLE_ARGS_DECL> : 
public ReturnAdaptor_Base<TRet, T >
 
  186             ReturnAdaptor( T functor, 
typename TypeTraits<TRet>::ParameterType retorno ):ReturnAdaptor_Base<TRet, T >( functor, retorno ){};
 
  187             ReturnAdaptor( 
const ReturnAdaptor& ob2 ): ReturnAdaptor_Base<TRet, T >( ob2 ){};
 
  188             TRet operator()( VARIABLE_ARGS_IMPL )
 
  190                 ReturnAdaptor_Base<TRet, T >::mFunctor( VARIABLE_ARGS_USE );
 
  191                 return ReturnAdaptor_Base<TRet, T >::mReturn;
 
  197         template < VARIABLE_ARGS,
class T,
class TRet > 
inline 
  198         ReturnAdaptor<TRet,T,VARIABLE_ARGS_DECL> returnAdaptor( T&& functor, TRet retorno )
 
  200             return ReturnAdaptor<TRet,T,VARIABLE_ARGS_DECL>( std::forward<T>(functor), retorno );
 
  202         template < VARIABLE_ARGS,
class T> 
inline 
  203             ReturnAdaptor<void,T,VARIABLE_ARGS_DECL> returnAdaptorVoid( T&& functor )
 
  205             return ReturnAdaptor<void,T,VARIABLE_ARGS_DECL>( std::forward<T>(functor) );
 
Definition: BasicTypes.h:7
 
Definition: ReturnAdaptorImpl.h:91
 
Small operator==(const AnyType &, const AnyType &)
 
Definition: Callback_Impl.h:11