forked from boostorg/bind
Add forwarding test for 2 arguments.
This commit is contained in:
@@ -49,4 +49,5 @@ test-suite "bind"
|
||||
[ run mem_fn_unary_addr_test.cpp ]
|
||||
[ run bind_function2_test.cpp ]
|
||||
[ run bind_fwd_test.cpp ]
|
||||
[ run bind_fwd2_test.cpp ]
|
||||
;
|
||||
|
121
test/bind_fwd2_test.cpp
Normal file
121
test/bind_fwd2_test.cpp
Normal 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();
|
||||
}
|
Reference in New Issue
Block a user