#ifndef ALGO_ENTRY_H #define ALGO_ENTRY_H #include #include namespace algo { // Use a copy of the value of 't'. template inline _wrapper<_entry::type_t> > value(Type t) { return make_wrapper(_entry::type_t>(t)); } // Use the reference to 't'. template inline _wrapper<_entry::ref_t> > ref(Type& t) { return make_wrapper(_entry::ref_t>(t)); } inline _wrapper<_arg0> _0() { return make_wrapper(_arg0()); } // Use the reference to the member 't', in the class used // as an argument when calling this functor. template inline _wrapper<_member > member(_wrapper target, Type Class::*mem) { return make_wrapper(_member(target.m_ftor, mem)); } template inline _wrapper<_on1 > on(_wrapper target, _wrapper parm0) { return make_wrapper(_on1(target.m_ftor, parm0.m_ftor)); } } #endif