mirror of
https://github.com/mat007/turtle.git
synced 2026-06-22 12:13:43 +00:00
Fixed phoenix and lambda functors logging
git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@432 860be788-9bd5-4423-9f1e-828f051e677b
This commit is contained in:
parent
bfab83e7c2
commit
2768c8b172
2 changed files with 31 additions and 3 deletions
|
|
@ -12,6 +12,7 @@
|
|||
#include <boost/utility/enable_if.hpp>
|
||||
#include <boost/detail/container_fwd.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
#include <boost/utility/addressof.hpp>
|
||||
#include <ostream>
|
||||
#include <memory>
|
||||
|
||||
|
|
@ -20,6 +21,14 @@ namespace boost
|
|||
template< typename T > class shared_ptr;
|
||||
template< typename T > class weak_ptr;
|
||||
|
||||
namespace phoenix
|
||||
{
|
||||
template< typename T > struct actor;
|
||||
}
|
||||
namespace lambda
|
||||
{
|
||||
template< typename T > struct lambda_functor;
|
||||
}
|
||||
namespace assign_detail
|
||||
{
|
||||
template< typename T > class generic_list;
|
||||
|
|
@ -64,7 +73,7 @@ namespace detail3
|
|||
struct holder_imp : holder
|
||||
{
|
||||
explicit holder_imp( const T& t )
|
||||
: t_( &t )
|
||||
: t_( boost::addressof( t ) )
|
||||
{}
|
||||
virtual void serialize( std::ostream& s ) const
|
||||
{
|
||||
|
|
@ -149,7 +158,7 @@ namespace detail2
|
|||
struct formatter
|
||||
{
|
||||
explicit formatter( const T& t )
|
||||
: t_( &t )
|
||||
: t_( boost::addressof( t ) )
|
||||
{}
|
||||
void serialize( stream& s ) const
|
||||
{
|
||||
|
|
@ -269,7 +278,16 @@ namespace detail
|
|||
{
|
||||
return s << mock::format( t.lock() );
|
||||
}
|
||||
|
||||
template< typename T >
|
||||
stream& operator<<( stream& s, boost::lambda::lambda_functor< T > )
|
||||
{
|
||||
return s << '?';
|
||||
}
|
||||
template< typename T >
|
||||
stream& operator<<( stream& s, boost::phoenix::actor< T > )
|
||||
{
|
||||
return s << '?';
|
||||
}
|
||||
template< typename T >
|
||||
BOOST_DEDUCED_TYPENAME boost::enable_if<
|
||||
boost::function_types::is_callable_builtin< T >,
|
||||
|
|
|
|||
|
|
@ -12,8 +12,16 @@
|
|||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/weak_ptr.hpp>
|
||||
#include <boost/lexical_cast.hpp>
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( push, 0 )
|
||||
#endif
|
||||
#include <boost/spirit/home/phoenix.hpp>
|
||||
#include <boost/spirit/home/phoenix/bind.hpp>
|
||||
#include <boost/lambda/bind.hpp>
|
||||
#include <boost/lambda/lambda.hpp>
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
#include <boost/bind.hpp>
|
||||
#include <vector>
|
||||
#include <deque>
|
||||
|
|
@ -578,6 +586,7 @@ namespace
|
|||
BOOST_AUTO_TEST_CASE( boost_phoenix_functor_yields_question_mark_when_serialized )
|
||||
{
|
||||
BOOST_CHECK_EQUAL( "?", to_string( boost::phoenix::bind( &some_function ) ) );
|
||||
BOOST_CHECK_EQUAL( "?", to_string( boost::phoenix::arg_names::_1 < 42 ) );
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE( boost_bind_functor_yields_question_mark_when_serialized )
|
||||
|
|
@ -588,4 +597,5 @@ BOOST_AUTO_TEST_CASE( boost_bind_functor_yields_question_mark_when_serialized )
|
|||
BOOST_AUTO_TEST_CASE( boost_lambda_functor_yields_question_mark_when_serialized )
|
||||
{
|
||||
BOOST_CHECK_EQUAL( "?", to_string( boost::lambda::bind( &some_function ) ) );
|
||||
BOOST_CHECK_EQUAL( "?", to_string( boost::lambda::_1 < 42 ) );
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue