2 /* Copyright 2002, The libsigc++ Development Team
3 * Assigned to public domain. Use as you wish without restriction.
6 #include "testutilities.h"
9 #include <sigc++/trackable.h>
10 #include <sigc++/functors/slot.h>
11 #include <sigc++/functors/mem_fun.h>
15 std::ostringstream result_stream;
17 class my_class: public sigc::trackable
25 my_class(const my_class& src) = delete;
26 my_class& operator=(const my_class& src) = delete;
28 my_class(my_class&& src)
29 : sigc::trackable(std::move(src)),
35 my_class& operator=(my_class&& src)
37 sigc::trackable::operator=(std::move(src));
51 } // end anonymous namespace
53 int main(int argc, char* argv[])
55 auto util = TestUtilities::get_instance();
57 if (!util->check_command_args(argc, argv))
58 return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
64 sl = sigc::mem_fun0(t, &my_class::foo);
66 util->check_result(result_stream, "10");
68 //Create another trackable via a move:
69 my_class t2(std::move(t));
71 result_stream.clear();
73 sl = sigc::mem_fun0(t2, &my_class::foo);
76 util->check_result(result_stream, "15");
79 return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;