diff --git a/src/libraries/turtle/lambda.hpp b/src/libraries/turtle/lambda.hpp index 4f9aea7..641de0a 100644 --- a/src/libraries/turtle/lambda.hpp +++ b/src/libraries/turtle/lambda.hpp @@ -13,9 +13,7 @@ #ifdef MOCK_USE_BOOST_BIND #include #else -#include -#include -#include +#include #endif #include @@ -23,8 +21,12 @@ namespace mock { namespace detail { - #ifdef MOCK_USE_BOOST_BIND + using boost::bind; +#else + using boost::phoenix::bind; +#endif + template< typename Result, typename Signature > struct lambda { @@ -34,21 +36,21 @@ namespace detail template< typename T > static functor_type make_val( T t ) { - return boost::bind( &do_identity< T >, t ); + return bind( &do_identity< T >, t ); } template< typename T > static functor_type make_val( boost::reference_wrapper< T > t ) { - return boost::bind( &do_ref_identity< T >, t.get_pointer() ); + return bind( &do_ref_identity< T >, t.get_pointer() ); } template< typename T > static functor_type make_throw( T t ) { - return boost::bind( &do_throw< T >, t ); + return bind( &do_throw< T >, t ); } static functor_type make_nothing() { - return boost::bind( &do_nothing ); + return bind( &do_nothing ); } template< typename T > @@ -70,37 +72,6 @@ namespace detail { } }; - -#else - - template< typename Result, typename Signature > - struct lambda - { - typedef BOOST_DEDUCED_TYPENAME - boost::function< Signature > functor_type; - - template< typename T > - static functor_type make_val( T t ) - { - return boost::phoenix::val( t ); - } - template< typename T > - static functor_type make_val( boost::reference_wrapper< T > t ) - { - return *boost::phoenix::val( t.get_pointer() ); - } - template< typename T > - static functor_type make_throw( T t ) - { - return boost::phoenix::throw_( t ); - } - static functor_type make_nothing() - { - return boost::phoenix::nothing; - } - }; -#endif - } }