#include // // bind_fwd_test.cpp - forwarding test // // 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 // void fv1( int & a ) { a = 1; } void fv2( int & a, int & b ) { a = 1; b = 2; } void fv3( int & a, int & b, int & c ) { a = 1; b = 2; c = 3; } void fv4( int & a, int & b, int & c, int & d ) { a = 1; b = 2; c = 3; d = 4; } void fv5( int & a, int & b, int & c, int & d, int & e ) { a = 1; b = 2; c = 3; d = 4; e = 5; } void fv6( int & a, int & b, int & c, int & d, int & e, int & f ) { a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; } void fv7( int & a, int & b, int & c, int & d, int & e, int & f, int & g ) { a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; g = 7; } void fv8( int & a, int & b, int & c, int & d, int & e, int & f, int & g, int & h ) { a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; g = 7; h = 8; } void fv9( int & a, int & b, int & c, int & d, int & e, int & f, int & g, int & h, int & i ) { a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; g = 7; h = 8; i = 9; } void test() { { int a = 0; boost::bind( fv1, _1 )( a ); BOOST_TEST( a == 1 ); } { int a = 0; int b = 0; boost::bind( fv2, _1, _2 )( a, b ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); } { int a = 0; int b = 0; int c = 0; boost::bind( fv3, _1, _2, _3 )( a, b, c ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); } { int a = 0; int b = 0; int c = 0; int d = 0; boost::bind( fv4, _1, _2, _3, _4 )( a, b, c, d ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); } { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; boost::bind( fv5, _1, _2, _3, _4, _5 )( a, b, c, d, e ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); BOOST_TEST( e == 5 ); } { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; boost::bind( fv6, _1, _2, _3, _4, _5, _6 )( a, b, c, d, e, f ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); BOOST_TEST( e == 5 ); BOOST_TEST( f == 6 ); } { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int g = 0; boost::bind( fv7, _1, _2, _3, _4, _5, _6, _7 )( a, b, c, d, e, f, g ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); BOOST_TEST( e == 5 ); BOOST_TEST( f == 6 ); BOOST_TEST( g == 7 ); } { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int g = 0; int h = 0; boost::bind( fv8, _1, _2, _3, _4, _5, _6, _7, _8 )( a, b, c, d, e, f, g, h ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); BOOST_TEST( e == 5 ); BOOST_TEST( f == 6 ); BOOST_TEST( g == 7 ); BOOST_TEST( h == 8 ); } { int a = 0; int b = 0; int c = 0; int d = 0; int e = 0; int f = 0; int g = 0; int h = 0; int i = 0; boost::bind( fv9, _1, _2, _3, _4, _5, _6, _7, _8, _9 )( a, b, c, d, e, f, g, h, i ); BOOST_TEST( a == 1 ); BOOST_TEST( b == 2 ); BOOST_TEST( c == 3 ); BOOST_TEST( d == 4 ); BOOST_TEST( e == 5 ); BOOST_TEST( f == 6 ); BOOST_TEST( g == 7 ); BOOST_TEST( h == 8 ); BOOST_TEST( i == 9 ); } } int main() { test(); return boost::report_errors(); }