1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
- #define BOOST_LAMBDA_SELECT_FUNCTIONS_HPP
- namespace boost {
- namespace lambda {
- namespace detail {
- template<class Any, CALL_TEMPLATE_ARGS>
- inline Any& select(Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
- template<class Arg, CALL_TEMPLATE_ARGS>
- inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
- select ( const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
- return op.template call<
- typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
- >(CALL_ACTUAL_ARGS);
- }
- template<class Arg, CALL_TEMPLATE_ARGS>
- inline typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
- select ( lambda_functor<Arg>& op, CALL_FORMAL_ARGS) {
- return op.template call<
- typename Arg::template sig<tuple<CALL_REFERENCE_TYPES> >::type
- >(CALL_ACTUAL_ARGS);
- }
-
- template<class RET> struct r_select {
- template<class Any, CALL_TEMPLATE_ARGS>
- static
- inline RET go (Any& any, CALL_FORMAL_ARGS) { CALL_USE_ARGS; return any; }
- template<class Arg, CALL_TEMPLATE_ARGS>
- static
- inline RET go (const lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
- return op.template call<RET>(CALL_ACTUAL_ARGS);
- }
- template<class Arg, CALL_TEMPLATE_ARGS>
- static
- inline RET go (lambda_functor<Arg>& op, CALL_FORMAL_ARGS ) {
- return op.template call<RET>(CALL_ACTUAL_ARGS);
- }
- };
-
- }
- }
- }
- #endif
|