Fix for vc100

git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@204 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
mat007 2011-01-21 15:25:57 +00:00
parent 3476e303cf
commit b3d3bf7e97

View file

@ -13,9 +13,7 @@
#ifdef MOCK_USE_BOOST_BIND #ifdef MOCK_USE_BOOST_BIND
#include <boost/bind.hpp> #include <boost/bind.hpp>
#else #else
#include <boost/spirit/home/phoenix/statement/throw.hpp> #include <boost/spirit/home/phoenix/bind.hpp>
#include <boost/spirit/home/phoenix/operator/self.hpp>
#include <boost/spirit/home/phoenix/core/nothing.hpp>
#endif #endif
#include <boost/function.hpp> #include <boost/function.hpp>
@ -23,8 +21,12 @@ namespace mock
{ {
namespace detail namespace detail
{ {
#ifdef MOCK_USE_BOOST_BIND #ifdef MOCK_USE_BOOST_BIND
using boost::bind;
#else
using boost::phoenix::bind;
#endif
template< typename Result, typename Signature > template< typename Result, typename Signature >
struct lambda struct lambda
{ {
@ -34,21 +36,21 @@ namespace detail
template< typename T > template< typename T >
static functor_type make_val( T t ) static functor_type make_val( T t )
{ {
return boost::bind( &do_identity< T >, t ); return detail::bind( &do_identity< T >, t );
} }
template< typename T > template< typename T >
static functor_type make_val( boost::reference_wrapper< T > t ) static functor_type make_val( boost::reference_wrapper< T > t )
{ {
return boost::bind( &do_ref_identity< T >, t.get_pointer() ); return detail::bind( &do_ref_identity< T >, t.get_pointer() );
} }
template< typename T > template< typename T >
static functor_type make_throw( T t ) static functor_type make_throw( T t )
{ {
return boost::bind( &do_throw< T >, t ); return detail::bind( &do_throw< T >, t );
} }
static functor_type make_nothing() static functor_type make_nothing()
{ {
return boost::bind( &do_nothing ); return detail::bind( &do_nothing );
} }
template< typename T > 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
} }
} }