[libsigcplusplus] mem_fun(): Remove the T_obj* overloads.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsigcplusplus] mem_fun(): Remove the T_obj* overloads.
- Date: Thu, 10 Mar 2016 13:01:10 +0000 (UTC)
commit 0d304b484918d607ffbbc81696a9e3321dff4ad0
Author: Murray Cumming <murrayc murrayc com>
Date: Mon Mar 7 11:38:52 2016 +0100
mem_fun(): Remove the T_obj* overloads.
So you would, for instance, always call sigc::mem_fun(*this, ...)
instead of sigc::mem_fun(this, ...).
Bug #763215
examples/member_method.cc | 2 +-
sigc++/functors/mem_fun.h | 66 -----------------------------------------
tests/test_accumulated.cc | 4 +-
tests/test_bind_refptr.cc | 4 +-
tests/test_disconnect.cc | 14 ++++----
tests/test_limit_reference.cc | 2 +-
tests/test_mem_fun.cc | 8 ++--
tests/test_signal.cc | 4 +-
tests/test_trackable.cc | 2 +-
tests/test_trackable_move.cc | 4 +-
tests/test_visit_each.cc | 6 ++--
11 files changed, 25 insertions(+), 91 deletions(-)
---
diff --git a/examples/member_method.cc b/examples/member_method.cc
index 5794a9e..bee4f1b 100644
--- a/examples/member_method.cc
+++ b/examples/member_method.cc
@@ -25,7 +25,7 @@ protected:
Something::Something()
{
- auto iter = signal_print.connect( sigc::mem_fun(this, &Something::on_print) );
+ auto iter = signal_print.connect( sigc::mem_fun(*this, &Something::on_print) );
signal_print.emit(2);
diff --git a/sigc++/functors/mem_fun.h b/sigc++/functors/mem_fun.h
index 2701959..fe6973f 100644
--- a/sigc++/functors/mem_fun.h
+++ b/sigc++/functors/mem_fun.h
@@ -227,23 +227,6 @@ mem_fun(T_return (T_obj::*_A_func)(T_arg...) const volatile)
T_arg...>(_A_func); }
-
-/** Creates a functor of type sigc::bound_mem_functor which encapsulates a method and an object instance.
- * @param _A_obj Pointer to object instance the functor should operate on.
- * @param _A_func Pointer to method that should be wrapped.
- * @return Functor that executes @e _A_func on invokation.
- *
- * @ingroup mem_fun
- */
-template <class T_return, class T_obj, class T_obj2, class... T_arg>
-inline decltype(auto)
-mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg...) )
-{
- return bound_mem_functor<
- T_return (T_obj::*)(T_arg...) ,
- T_arg...>(*_A_obj, _A_func);
-}
-
/** Creates a functor of type sigc::bound_mem_functor which encapsulates a method and an object instance.
* @param _A_obj Reference to object instance the functor should operate on.
* @param _A_func Pointer to method that should be wrapped.
@@ -260,23 +243,6 @@ mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) )
T_arg...>(_A_obj, _A_func);
}
-
-/** Creates a functor of type sigc::bound_const_mem_functor which encapsulates a method and an object
instance.
- * @param _A_obj Pointer to object instance the functor should operate on.
- * @param _A_func Pointer to method that should be wrapped.
- * @return Functor that executes @e _A_func on invokation.
- *
- * @ingroup mem_fun
- */
-template <class T_return, class T_obj, class T_obj2, class... T_arg>
-inline decltype(auto)
-mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg...) const)
-{
- return bound_mem_functor<
- T_return (T_obj::*)(T_arg...) const,
- T_arg...>(*_A_obj, _A_func);
-}
-
/** Creates a functor of type sigc::bound_const_mem_functor which encapsulates a method and an object
instance.
* @param _A_obj Reference to object instance the functor should operate on.
* @param _A_func Pointer to method that should be wrapped.
@@ -295,22 +261,6 @@ mem_fun(/*const*/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) const)
/** Creates a functor of type sigc::bound_volatile_mem_functor which encapsulates a method and an object
instance.
- * @param _A_obj Pointer to object instance the functor should operate on.
- * @param _A_func Pointer to method that should be wrapped.
- * @return Functor that executes @e _A_func on invokation.
- *
- * @ingroup mem_fun
- */
-template <class T_return, class T_obj, class T_obj2, class... T_arg>
-inline decltype(auto)
-mem_fun(/**/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg...) volatile)
-{
- return bound_mem_functor<
- T_return (T_obj::*)(T_arg...) volatile,
- T_arg...>(*_A_obj, _A_func);
-}
-
-/** Creates a functor of type sigc::bound_volatile_mem_functor which encapsulates a method and an object
instance.
* @param _A_obj Reference to object instance the functor should operate on.
* @param _A_func Pointer to method that should be wrapped.
* @return Functor that executes @e _A_func on invokation.
@@ -328,22 +278,6 @@ mem_fun(/**/ T_obj& _A_obj, T_return (T_obj2::*_A_func)(T_arg...) volatile)
/** Creates a functor of type sigc::bound_const_volatile_mem_functor which encapsulates a method and an
object instance.
- * @param _A_obj Pointer to object instance the functor should operate on.
- * @param _A_func Pointer to method that should be wrapped.
- * @return Functor that executes @e _A_func on invokation.
- *
- * @ingroup mem_fun
- */
-template <class T_return, class T_obj, class T_obj2, class... T_arg>
-inline decltype(auto)
-mem_fun(/*const*/ T_obj* _A_obj, T_return (T_obj2::*_A_func)(T_arg...) const volatile)
-{
- return bound_mem_functor<
- T_return (T_obj::*)(T_arg...) const volatile,
- T_arg...>(*_A_obj, _A_func);
-}
-
-/** Creates a functor of type sigc::bound_const_volatile_mem_functor which encapsulates a method and an
object instance.
* @param _A_obj Reference to object instance the functor should operate on.
* @param _A_func Pointer to method that should be wrapped.
* @return Functor that executes @e _A_func on invokation.
diff --git a/tests/test_accumulated.cc b/tests/test_accumulated.cc
index 1efa979..5ada9fc 100644
--- a/tests/test_accumulated.cc
+++ b/tests/test_accumulated.cc
@@ -89,11 +89,11 @@ int main(int argc, char* argv[])
A a;
sig.connect(sigc::ptr_fun(&foo));
- sig.connect(sigc::mem_fun(&a, &A::foo));
+ sig.connect(sigc::mem_fun(a, &A::foo));
sig.connect(sigc::ptr_fun(&bar));
sig_vec.connect(sigc::ptr_fun(&foo));
- sig_vec.connect(sigc::mem_fun(&a, &A::foo));
+ sig_vec.connect(sigc::mem_fun(a, &A::foo));
sig_vec.connect(sigc::ptr_fun(&bar));
double dres = sig(1);
diff --git a/tests/test_bind_refptr.cc b/tests/test_bind_refptr.cc
index f8fe446..a8909af 100644
--- a/tests/test_bind_refptr.cc
+++ b/tests/test_bind_refptr.cc
@@ -441,10 +441,10 @@ public:
{
result_stream << "new Test; ";
#ifdef ACTIVATE_BUG //See https://bugzilla.gnome.org/show_bug.cgi?id=564005#c14
- action->signal_sig1().connect(sigc::bind(sigc::mem_fun(this, &Test::on_sig1), action));
+ action->signal_sig1().connect(sigc::bind(sigc::mem_fun(*this, &Test::on_sig1), action));
#else
Glib::RefPtr<Action> action2(new Action);
- action->signal_sig1().connect(sigc::bind(sigc::mem_fun(this, &Test::on_sig1), action2));
+ action->signal_sig1().connect(sigc::bind(sigc::mem_fun(*this, &Test::on_sig1), action2));
#endif
}
diff --git a/tests/test_disconnect.cc b/tests/test_disconnect.cc
index 40a092a..70cf786 100644
--- a/tests/test_disconnect.cc
+++ b/tests/test_disconnect.cc
@@ -50,8 +50,8 @@ struct B : public sigc::trackable
{
B()
{
- sig.connect(sigc::mem_fun(this, &B::destroy));
- sig.connect(sigc::mem_fun(this, &B::boom));
+ sig.connect(sigc::mem_fun(*this, &B::destroy));
+ sig.connect(sigc::mem_fun(*this, &B::boom));
sig.connect(sigc::ptr_fun(&good_bye_world));
}
@@ -89,7 +89,7 @@ int main(int argc, char* argv[])
{
A a;
- sig.connect(sigc::mem_fun(&a, &A::foo));
+ sig.connect(sigc::mem_fun(a, &A::foo));
confoo = sig.connect(sigc::ptr_fun(&foo));
conbar = sig.connect(sigc::ptr_fun(&bar));
result_stream << "sig is connected to A::foo, foo, bar (size=" << sig.size() << "): ";
@@ -103,7 +103,7 @@ int main(int argc, char* argv[])
util->check_result(result_stream, "sig is connected to foo, bar (size=2): foo(2) bar(2) ");
A a; // iterators stay valid after further connections.
- cona = sig.slots().insert(conbar, sigc::mem_fun(&a, &A::foo));
+ cona = sig.slots().insert(conbar, sigc::mem_fun(a, &A::foo));
result_stream << "sig is connected to foo, A::foo, bar (size=" << sig.size() << "): ";
sig(3);
util->check_result(result_stream,
@@ -128,7 +128,7 @@ int main(int argc, char* argv[])
{
A a2;
- sig.connect(sigc::compose(sigc::mem_fun(&a2, &A::foo), &foo));
+ sig.connect(sigc::compose(sigc::mem_fun(a2, &A::foo), &foo));
result_stream << "sig is connected to compose(A::foo, foo) (size=" << sig.size() << "): ";
sig(7);
util->check_result(result_stream, "sig is connected to compose(A::foo, foo) (size=1): foo(7) A::foo(1)
");
@@ -139,7 +139,7 @@ int main(int argc, char* argv[])
{ // A slot# within a slot
A a2;
- sigc::slot<int, int> setter = sigc::mem_fun(&a2, &A::foo);
+ sigc::slot<int, int> setter = sigc::mem_fun(a2, &A::foo);
sig.connect(sigc::compose(setter, &foo));
result_stream << "sig is connected to compose(slot1(A::foo), foo) (size=" << sig.size() << "): ";
sig(9);
@@ -151,7 +151,7 @@ int main(int argc, char* argv[])
{ // A slot within a slot
A a2;
- sigc::slot<int, int> setter = sigc::mem_fun(&a2, &A::foo);
+ sigc::slot<int, int> setter = sigc::mem_fun(a2, &A::foo);
sig.connect(sigc::compose(setter, &foo));
result_stream << "sig is connected to compose(slot(A::foo), foo) (size=" << sig.size() << "): ";
sig(11);
diff --git a/tests/test_limit_reference.cc b/tests/test_limit_reference.cc
index 34fa547..ea1edcd 100644
--- a/tests/test_limit_reference.cc
+++ b/tests/test_limit_reference.cc
@@ -41,7 +41,7 @@ int main(int argc, char* argv[])
return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
auto instance = new Derived();
- sigc::slot<void> handler = sigc::mem_fun(instance, &Derived::method);
+ sigc::slot<void> handler = sigc::mem_fun(*instance, &Derived::method);
handler();
util->check_result(result_stream, "method()");
diff --git a/tests/test_mem_fun.cc b/tests/test_mem_fun.cc
index b8fe8b9..2d8d3a3 100644
--- a/tests/test_mem_fun.cc
+++ b/tests/test_mem_fun.cc
@@ -134,26 +134,26 @@ int main(int argc, char* argv[])
sigc::mem_fun(t, &test::foo)(9);
util->check_result(result_stream, "test::foo(short 9)");
- sigc::mem_fun(&t, &test::foo)(9);
+ sigc::mem_fun(t, &test::foo)(9);
util->check_result(result_stream, "test::foo(short 9)");
sigc::mem_fun(t, &test::foo_const)(9);
util->check_result(result_stream, "test::foo_const(int 9)");
- sigc::mem_fun(&t, &test::foo_const)(9);
+ sigc::mem_fun(t, &test::foo_const)(9);
util->check_result(result_stream, "test::foo_const(int 9)");
sigc::mem_fun(t, &test::foo_volatile)(9);
util->check_result(result_stream, "test::foo_volatile(float 9)");
- sigc::mem_fun(&t, &test::foo_volatile)(9);
+ sigc::mem_fun(t, &test::foo_volatile)(9);
util->check_result(result_stream, "test::foo_volatile(float 9)");
#if ENABLE_TEST_OF_OVERLOADED_FUNCTIONS
sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
- sigc::mem_fun(&t, &test::foo_overloaded)(9, 10);
+ sigc::mem_fun(t, &test::foo_overloaded)(9, 10);
util->check_result(result_stream, "test::foo_overloaded(int 9, int 10)");
#endif
}
diff --git a/tests/test_signal.cc b/tests/test_signal.cc
index ecb5a55..1235a29 100644
--- a/tests/test_signal.cc
+++ b/tests/test_signal.cc
@@ -62,7 +62,7 @@ int main(int argc, char* argv[])
{
A a;
sig.connect(sigc::ptr_fun(&foo));
- sig.connect(sigc::mem_fun(&a, &A::foo));
+ sig.connect(sigc::mem_fun(a, &A::foo));
sig.connect(sigc::ptr_fun(&bar));
sig(1);
result_stream << sig.size();
@@ -78,7 +78,7 @@ int main(int argc, char* argv[])
A a;
std::string str("guest book");
sigc::signal<void,std::string&> sigstr;
- sigstr.connect(sigc::mem_fun(&a, &A::bar));
+ sigstr.connect(sigc::mem_fun(a, &A::bar));
sigstr(str);
result_stream << str;
util->check_result(result_stream, "A::foo(string 'guest book') foo was here");
diff --git a/tests/test_trackable.cc b/tests/test_trackable.cc
index fe7ecb1..6677c43 100644
--- a/tests/test_trackable.cc
+++ b/tests/test_trackable.cc
@@ -38,7 +38,7 @@ int main(int argc, char* argv[])
{
my_class t;
t.i = 10;
- sl = sigc::mem_fun(&t, &my_class::foo);
+ sl = sigc::mem_fun(t, &my_class::foo);
sl();
util->check_result(result_stream, "10");
}
diff --git a/tests/test_trackable_move.cc b/tests/test_trackable_move.cc
index 6ed2e26..d42b9c3 100644
--- a/tests/test_trackable_move.cc
+++ b/tests/test_trackable_move.cc
@@ -61,7 +61,7 @@ int main(int argc, char* argv[])
{
my_class t;
t.i = 10;
- sl = sigc::mem_fun(&t, &my_class::foo);
+ sl = sigc::mem_fun(t, &my_class::foo);
sl();
util->check_result(result_stream, "10");
@@ -70,7 +70,7 @@ int main(int argc, char* argv[])
t2.i = 15;
result_stream.clear();
- sl = sigc::mem_fun(&t2, &my_class::foo);
+ sl = sigc::mem_fun(t2, &my_class::foo);
sl();
util->check_result(result_stream, "15");
diff --git a/tests/test_visit_each.cc b/tests/test_visit_each.cc
index add80a5..4c508b6 100644
--- a/tests/test_visit_each.cc
+++ b/tests/test_visit_each.cc
@@ -164,7 +164,7 @@ int main(int argc, char* argv[])
{
MyClass1 my_class1("x=");
- sl1 = sigc::mem_fun(&my_class1, &MyClass1::execute);
+ sl1 = sigc::mem_fun(my_class1, &MyClass1::execute);
sl1(-2);
util->check_result(result_stream, "x=-2");
@@ -176,7 +176,7 @@ int main(int argc, char* argv[])
#if SIGCTEST_CASE >= 2
{
MyClass2 my_class2("y=");
- sl1 = sigc::mem_fun(&my_class2, &MyClass2::execute);
+ sl1 = sigc::mem_fun(my_class2, &MyClass2::execute);
sl1(2);
util->check_result(result_stream, "y=2");
@@ -188,7 +188,7 @@ int main(int argc, char* argv[])
{
MyClass1 my_class3("a=");
- sl1 = ns1::my_adaptor1(sigc::mem_fun(&my_class3, &MyClass1::execute));
+ sl1 = ns1::my_adaptor1(sigc::mem_fun(my_class3, &MyClass1::execute));
sl1(42);
util->check_result(result_stream, "MyAdaptor1()(_A_arg1) a=42");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]