
Hallo, Doug. The attached patch for signal_test.cpp enables the alternative syntax for the Borland compilers as they still do not support the standard one. I realize that this in itself could be considered a reason for the test to fail. What do you think? Maybe this patch could be applied to the RC_1_34_0 branch only and not to head. In any case I'll wait for your approval before applying it. Cheers, Nicola Musatti ******Index: signal_test.cpp =================================================================== RCS file: /cvsroot/boost/boost/libs/signals/test/signal_test.cpp,v retrieving revision 1.9 diff -d -u -r1.9 signal_test.cpp --- signal_test.cpp 3 Feb 2005 13:35:20 -0000 1.9 +++ signal_test.cpp 2 May 2006 21:34:59 -0000 @@ -9,6 +9,7 @@ #include <boost/test/minimal.hpp> #include <boost/signal.hpp> +#include <boost/detail/workaround.hpp> #include <functional> #include <iostream> @@ -59,8 +60,11 @@ make_int i62(62, 61); { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal0<int, max_or_default<int> > s0; +#else boost::signal<int (), max_or_default<int> > s0; - +#endif std::cout << "sizeof(signal) = " << sizeof(s0) << std::endl; boost::BOOST_SIGNALS_NAMESPACE::connection c2 = s0.connect(i2); boost::BOOST_SIGNALS_NAMESPACE::connection c72 = s0.connect(72, i72); @@ -94,13 +98,21 @@ } { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal0<int, max_or_default<int> > s0; +#else boost::signal<int (), max_or_default<int> > s0; +#endif boost::BOOST_SIGNALS_NAMESPACE::connection c2 = s0.connect(i2); boost::BOOST_SIGNALS_NAMESPACE::connection c72 = s0.connect(i72); boost::BOOST_SIGNALS_NAMESPACE::connection c62 = s0.connect(i62); boost::BOOST_SIGNALS_NAMESPACE::connection c42 = s0.connect(i42); +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + const boost::signal0<int, max_or_default<int> >& cs0 = s0; +#else const boost::signal<int (), max_or_default<int> >& cs0 = s0; +#endif BOOST_CHECK(cs0() == 72); } @@ -108,7 +120,11 @@ make_increasing_int<7> i7; make_increasing_int<10> i10; +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal0<int, max_or_default<int> > s0; +#else boost::signal<int (), max_or_default<int> > s0; +#endif boost::BOOST_SIGNALS_NAMESPACE::connection c7 = s0.connect(i7); boost::BOOST_SIGNALS_NAMESPACE::connection c10 = s0.connect(i10); @@ -120,7 +136,11 @@ static void test_one_arg() { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal1<int, int, max_or_default<int> > s1; +#else boost::signal<int (int value), max_or_default<int> > s1; +#endif s1.connect(std::negate<int>()); s1.connect(std::bind1st(std::multiplies<int>(), 2)); @@ -132,14 +152,22 @@ static void test_signal_signal_connect() { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal1<int, int, max_or_default<int> > s1; +#else boost::signal<int (int value), max_or_default<int> > s1; +#endif s1.connect(std::negate<int>()); BOOST_CHECK(s1(3) == -3); { +#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582)) + boost::signal1<int, int, max_or_default<int> > s2; +#else boost::signal<int (int value), max_or_default<int> > s2; +#endif s1.connect(s2); s2.connect(std::bind1st(std::multiplies<int>(), 2)); s2.connect(std::bind1st(std::multiplies<int>(), -3));

On May 3, 2006, at 3:44 AM, Nicola Musatti wrote:
Hallo, Doug. The attached patch for signal_test.cpp enables the alternative syntax for the Borland compilers as they still do not support the standard one.
I realize that this in itself could be considered a reason for the test to fail. What do you think? Maybe this patch could be applied to the RC_1_34_0 branch only and not to head.
Actually, this test is intended to fail on compilers that don't support the standard syntax. It should be identical to signal_n_test, which uses the more portable, alternative syntax. So, I'd rather not apply this patch. We should instead mark this as an expected failure in the regression test results. Doug

Doug Gregor wrote: [...]
I realize that this in itself could be considered a reason for the test to fail. What do you think? Maybe this patch could be applied to the RC_1_34_0 branch only and not to head.
Actually, this test is intended to fail on compilers that don't support the standard syntax. It should be identical to signal_n_test, which uses the more portable, alternative syntax. So, I'd rather not apply this patch. We should instead mark this as an expected failure in the regression test results.
Fine by me. Cheers, Nicola Musatti
participants (2)
-
Doug Gregor
-
Nicola Musatti