diff --git a/src/libraries/turtle/check.hpp b/src/libraries/turtle/check.hpp index 0299708..0314036 100644 --- a/src/libraries/turtle/check.hpp +++ b/src/libraries/turtle/check.hpp @@ -9,20 +9,13 @@ #ifndef MOCK_CHECK_HPP_INCLUDED #define MOCK_CHECK_HPP_INCLUDED -#include "config.hpp" #include "is_functor.hpp" #include "constraints.hpp" #include "operators.hpp" #include "format.hpp" +#include #include #include -#ifdef MOCK_USE_BOOST_BIND -#include -#else -#include -#include -#endif -#include #include #include @@ -37,8 +30,8 @@ namespace detail BOOST_CONCEPT_USAGE( FunctorCompatible ) { boost::require_boolean_expr( - // if an error is generated by the line below it means - // an argument passed to 'with' was of the wrong type. + // if an error is generated by the line below it means an argument + // passed to 'with' was of the wrong type. functor_accepts( actual_argument_type ) ); } @@ -55,8 +48,8 @@ namespace detail BOOST_CONCEPT_USAGE( EqualityComparable ) { boost::require_boolean_expr( - // if an error is generated by the line below it means - // an argument passed to 'with' was of the wrong type. + // if an error is generated by the line below it means an argument + // passed to 'with' was of the wrong type. actual_argument_type == expected_argument_type ); } @@ -66,28 +59,6 @@ namespace detail Actual actual_argument_type; }; - template< typename T > - void log( std::ostream& s, const T& t ) - { - s << mock::format( t ); - } - -#ifdef MOCK_USE_BOOST_BIND - template< typename T > - boost::function< void( std::ostream& ) > lazy_format( T t ) - { - return boost::bind( &log< T >, _1, t ); - } -#else - template< typename T > - boost::function< void( std::ostream& ) > lazy_format( T t ) - { - return boost::phoenix::bind( - &log< T >, - boost::phoenix::arg_names::_1, t ); - } -#endif - template< typename Actual > class check { @@ -97,7 +68,7 @@ namespace detail BOOST_DEDUCED_TYPENAME boost::enable_if< BOOST_DEDUCED_TYPENAME detail::is_functor< Functor > >::type* = 0 ) - : desc_( lazy_format( f ) ) + : desc_( mock::format( f ) ) { BOOST_CONCEPT_ASSERT(( FunctorCompatible< Functor, Actual > )); f_ = f; @@ -109,19 +80,19 @@ namespace detail BOOST_DEDUCED_TYPENAME boost::disable_if< BOOST_DEDUCED_TYPENAME detail::is_functor< Expected > >::type* = 0 ) - : desc_( lazy_format( expected ) ) + : desc_( mock::format( expected ) ) { BOOST_CONCEPT_ASSERT(( EqualityComparable< Expected, Actual > )); f_ = mock::equal( expected ).f_; if( ! f_ ) std::invalid_argument( "invalid constraint" ); } - template< typename Constraint > - explicit check( const constraint< Constraint >& c ) - : desc_( lazy_format( c.f_ ) ) + template< typename Functor > + explicit check( const constraint< Functor >& ph ) + : desc_( mock::format( ph.f_ ) ) { - BOOST_CONCEPT_ASSERT(( FunctorCompatible< Constraint, Actual > )); - f_ = c.f_; + BOOST_CONCEPT_ASSERT(( FunctorCompatible< Functor, Actual > )); + f_ = ph.f_; if( ! f_ ) std::invalid_argument( "invalid constraint" ); } @@ -133,13 +104,12 @@ namespace detail friend std::ostream& operator<<( std::ostream& s, const check& c ) { - c.desc_( s ); - return s; + return s << c.desc_; } private: boost::function< bool( Actual ) > f_; - boost::function< void( std::ostream& ) > desc_; + std::string desc_; }; } }