int main(void) { /* ** types::Int */ types::Int32 i42(1, 1); i42.set(0, 0, 42); std::cout << "i42 = " << ((long long*) i42.get())[0] << std::endl; assert(i42.get()[0] == 42); assert(i42.isInt() == true); assert(i42.isDouble() == false); /* ** types::Double */ types::Double d42(42); std::cout << "d42 = " << d42.get(0, 0) << std::endl; assert(d42.get(0, 0) == 42); assert(d42.isInt() == false); assert(d42.isDouble() == true); /* ** types::String */ types::String s42(L"42"); std::cout << "s42 = " << d42.get(0, 0) << std::endl; assert(wcscmp(s42.get(0, 0), L"42") == 0); assert(s42.isInt() == false); assert(s42.isDouble() == false); assert(s42.isString() == true); /* ** types::Generic */ /* -*- WARNING : GenericType() is protected -*- */ //types::GenericType *gt = new types::GenericType(); return 0; }
static void test_zero_args() { make_int i42(42, 41); make_int i2(2, 1); make_int i72(72, 71); make_int i63(63, 63); make_int i62(62, 61); { boost::signal<int (), max_or_default<int> > s0; 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); boost::BOOST_SIGNALS_NAMESPACE::connection c62 = s0.connect(60, i62); boost::BOOST_SIGNALS_NAMESPACE::connection c42 = s0.connect(i42); BOOST_CHECK(s0() == 72); s0.disconnect(72); BOOST_CHECK(s0() == 62); c72.disconnect(); // Double-disconnect should be safe BOOST_CHECK(s0() == 62); s0.disconnect(72); // Triple-disconect should be safe BOOST_CHECK(s0() == 62); // Also connect 63 in the same group as 62 s0.connect(60, i63); BOOST_CHECK(s0() == 63); // Disconnect all of the 60's s0.disconnect(60); BOOST_CHECK(s0() == 42); c42.disconnect(); BOOST_CHECK(s0() == 2); c2.disconnect(); BOOST_CHECK(s0() == 0); } { boost::signal<int (), max_or_default<int> > s0; 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); const boost::signal<int (), max_or_default<int> >& cs0 = s0; BOOST_CHECK(cs0() == 72); } { make_increasing_int<7> i7; make_increasing_int<10> i10; boost::signal<int (), max_or_default<int> > s0; boost::BOOST_SIGNALS_NAMESPACE::connection c7 = s0.connect(i7); boost::BOOST_SIGNALS_NAMESPACE::connection c10 = s0.connect(i10); BOOST_CHECK(s0() == 10); BOOST_CHECK(s0() == 11); } }
static void test_zero_args() { make_int i42(42, 41); make_int i2(2, 1); make_int i72(72, 71); make_int i63(63, 63); make_int i62(62, 61); { boost::signals2::signal0<int, max_or_default<int>, std::string> s0; boost::signals2::connection c2 = s0.connect(i2); boost::signals2::connection c72 = s0.connect("72", i72); boost::signals2::connection c62 = s0.connect("6x", i62); boost::signals2::connection c42 = s0.connect(i42); boost::signals2::connection c37 = s0.connect(&get_37); BOOST_CHECK(s0() == 72); s0.disconnect("72"); BOOST_CHECK(s0() == 62); c72.disconnect(); // Double-disconnect should be safe BOOST_CHECK(s0() == 62); s0.disconnect("72"); // Triple-disconect should be safe BOOST_CHECK(s0() == 62); // Also connect 63 in the same group as 62 s0.connect("6x", i63); BOOST_CHECK(s0() == 63); // Disconnect all of the 60's s0.disconnect("6x"); BOOST_CHECK(s0() == 42); c42.disconnect(); BOOST_CHECK(s0() == 37); c37.disconnect(); BOOST_CHECK(s0() == 2); c2.disconnect(); BOOST_CHECK(s0() == 0); } { boost::signals2::signal0<int, max_or_default<int> > s0; boost::signals2::connection c2 = s0.connect(i2); boost::signals2::connection c72 = s0.connect(i72); boost::signals2::connection c62 = s0.connect(i62); boost::signals2::connection c42 = s0.connect(i42); const boost::signals2::signal0<int, max_or_default<int> >& cs0 = s0; BOOST_CHECK(cs0() == 72); } { make_increasing_int<7> i7; make_increasing_int<10> i10; boost::signals2::signal0<int, max_or_default<int> > s0; boost::signals2::connection c7 = s0.connect(i7); boost::signals2::connection c10 = s0.connect(i10); BOOST_CHECK(s0() == 10); BOOST_CHECK(s0() == 11); } }