1
0
forked from boostorg/bind

Add forwarding test for 2 arguments.

This commit is contained in:
Peter Dimov
2015-03-20 16:53:30 +02:00
parent 46c414606c
commit 8e54850ab6
2 changed files with 122 additions and 0 deletions

View File

@@ -49,4 +49,5 @@ test-suite "bind"
[ run mem_fn_unary_addr_test.cpp ] [ run mem_fn_unary_addr_test.cpp ]
[ run bind_function2_test.cpp ] [ run bind_function2_test.cpp ]
[ run bind_fwd_test.cpp ] [ run bind_fwd_test.cpp ]
[ run bind_fwd2_test.cpp ]
; ;

121
test/bind_fwd2_test.cpp Normal file
View File

@@ -0,0 +1,121 @@
#include <boost/config.hpp>
//
// bind_fwd2_test.cpp - forwarding test for 2 arguments
//
// Copyright (c) 2015 Peter Dimov
//
// Distributed under the Boost Software License, Version 1.0.
// See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt
//
#include <boost/bind.hpp>
#include <boost/detail/lightweight_test.hpp>
//
int fv1( int const & a )
{
return a;
}
void fv2_1( int & a, int const & b )
{
a = b;
}
void fv2_2( int const & a, int & b )
{
b = a;
}
int fv2_3( int const & a, int const & b )
{
return a+b;
}
void test()
{
{
int const a = 1;
int r = boost::bind( fv1, _1 )( a );
BOOST_TEST( r == 1 );
}
{
int r = boost::bind( fv1, _1 )( 1 );
BOOST_TEST( r == 1 );
}
{
int a = 1;
int const b = 2;
boost::bind( fv2_1, _1, _2 )( a, b );
BOOST_TEST( a == 2 );
}
{
int a = 1;
boost::bind( fv2_1, _1, _2 )( a, 2 );
BOOST_TEST( a == 2 );
}
{
int const a = 1;
int b = 2;
boost::bind( fv2_2, _1, _2 )( a, b );
BOOST_TEST( b == 1 );
}
{
int b = 2;
boost::bind( fv2_2, _1, _2 )( 1, b );
BOOST_TEST( b == 1 );
}
{
int const a = 1;
int const b = 2;
int r = boost::bind( fv2_3, _1, _2 )( a, b );
BOOST_TEST( r == 3 );
}
{
int const a = 1;
int r = boost::bind( fv2_3, _1, _2 )( a, 2 );
BOOST_TEST( r == 3 );
}
{
int const b = 2;
int r = boost::bind( fv2_3, _1, _2 )( 1, b );
BOOST_TEST( r == 3 );
}
{
int r = boost::bind( fv2_3, _1, _2 )( 1, 2 );
BOOST_TEST( r == 3 );
}
}
int main()
{
test();
return boost::report_errors();
}