From f2541bb90af059680aa7036f315f052175999355 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Wed, 8 Apr 2015 03:09:47 +0000 Subject: Imported from /home/lorry/working-area/delta_boost-tarball/boost_1_58_0.tar.bz2. --- libs/bind/test/bind_fwd2_test.cpp | 121 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 libs/bind/test/bind_fwd2_test.cpp (limited to 'libs/bind/test/bind_fwd2_test.cpp') diff --git a/libs/bind/test/bind_fwd2_test.cpp b/libs/bind/test/bind_fwd2_test.cpp new file mode 100644 index 000000000..5b7bf9cdc --- /dev/null +++ b/libs/bind/test/bind_fwd2_test.cpp @@ -0,0 +1,121 @@ +#include + +// +// 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 +#include + +// + +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(); +} -- cgit v1.2.1