Ticket 6374, thanks edA-qa

[SVN r76403]
This commit is contained in:
Emil Dotchevski
2012-01-11 01:13:03 +00:00
parent 192ffd0379
commit f576e14dbc
2 changed files with 59 additions and 6 deletions

View File

@ -18,6 +18,30 @@
namespace namespace
boost boost
{ {
template <
class E >
inline
E const &
operator<<(
E const & x,
tuple< > const & v )
{
return x;
}
template <
class E,
class Tag1,class T1 >
inline
E const &
operator<<(
E const & x,
tuple<
error_info<Tag1,T1> > const & v )
{
return x << v.template get<0>();
}
template < template <
class E, class E,
class Tag1,class T1, class Tag1,class T1,

View File

@ -249,12 +249,41 @@ test_catch_add_info()
void void
test_add_tuple() test_add_tuple()
{ {
typedef boost::tuple<test_1,test_2> test_12; typedef boost::tuple<> tuple_test_;
typedef boost::tuple<test_1,test_2,test_3> test_123; typedef boost::tuple<test_1> tuple_test_1;
typedef boost::tuple<test_1,test_2,test_3,test_5> test_1235; typedef boost::tuple<test_1,test_2> tuple_test_12;
typedef boost::tuple<test_1,test_2,test_3> tuple_test_123;
typedef boost::tuple<test_1,test_2,test_3,test_5> tuple_test_1235;
try try
{ {
throw test_exception() << test_12(42,42u); throw test_exception() << tuple_test_();
}
catch(
test_exception & x )
{
}
catch(
... )
{
BOOST_TEST(false);
}
try
{
throw test_exception() << tuple_test_1(42);
}
catch(
test_exception & x )
{
BOOST_TEST( *boost::get_error_info<test_1>(x)==42 );
}
catch(
... )
{
BOOST_TEST(false);
}
try
{
throw test_exception() << tuple_test_12(42,42u);
} }
catch( catch(
test_exception & x ) test_exception & x )
@ -269,7 +298,7 @@ test_add_tuple()
} }
try try
{ {
throw test_exception() << test_123(42,42u,42.0f); throw test_exception() << tuple_test_123(42,42u,42.0f);
} }
catch( catch(
test_exception & x ) test_exception & x )
@ -285,7 +314,7 @@ test_add_tuple()
} }
try try
{ {
throw test_exception() << test_1235(42,42u,42.0f,std::string("42")); throw test_exception() << tuple_test_1235(42,42u,42.0f,std::string("42"));
} }
catch( catch(
test_exception & x ) test_exception & x )