void test_thread_callable_object_multiple_arguments() { std::vector<int> x; for(unsigned i=0;i<7;++i) { x.push_back(i*i); } callable_multiple_arg func; boost::thread callable3(func,"hello",x,1.2); callable3.join(); BOOST_CHECK(callable_multiple_arg::called_three); BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg1,"hello"); BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg2.size(),x.size()); for(unsigned j=0;j<x.size();++j) { BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg2.at(j),x[j]); } BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg3,1); double const dbl=1.234; boost::thread callable2(func,19,dbl); callable2.join(); BOOST_CHECK(callable_multiple_arg::called_two); BOOST_CHECK_EQUAL(callable_multiple_arg::called_two_arg1,19); BOOST_CHECK_EQUAL(callable_multiple_arg::called_two_arg2,dbl); }
void test_thread_callable_object_multiple_arguments() { std::vector<int> x; for(unsigned i=0;i<7;++i) { x.push_back(i*i); } callable_multiple_arg func; // Avoid // boost/bind/bind.hpp(392) : warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data boost::thread callable3(func,"hello",x,1); callable3.join(); BOOST_CHECK(callable_multiple_arg::called_three); BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg1,"hello"); BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg2.size(),x.size()); for(unsigned j=0;j<x.size();++j) { BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg2.at(j),x[j]); } BOOST_CHECK_EQUAL(callable_multiple_arg::called_three_arg3,1); double const dbl=1.234; boost::thread callable2(func,19,dbl); callable2.join(); BOOST_CHECK(callable_multiple_arg::called_two); BOOST_CHECK_EQUAL(callable_multiple_arg::called_two_arg1,19); BOOST_CHECK_EQUAL(callable_multiple_arg::called_two_arg2,dbl); }