[libsigcplusplus] Rename visit_each_type<T_Type>() to visit_each_trackable().



commit b1386b9f14fa676417efcdd7d073803d351fc001
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Apr 15 12:56:48 2016 +0200

    Rename visit_each_type<T_Type>() to visit_each_trackable().
    
    Because that is how we always use it. Making it more generic obscures
    how it works and what it is for.
    We can revert, and improve this, if we ever need to handle more than
    one way to make a functor's arguments trackable.

 sigc++/functors/slot.h        |    8 ++++----
 sigc++/visit_each.h           |    8 +++++---
 tests/test_visit_each_type.cc |   21 +++------------------
 3 files changed, 12 insertions(+), 25 deletions(-)
---
diff --git a/sigc++/functors/slot.h b/sigc++/functors/slot.h
index de97361..136f67e 100644
--- a/sigc++/functors/slot.h
+++ b/sigc++/functors/slot.h
@@ -40,13 +40,13 @@ public:
   inline typed_slot_rep(const T_functor& functor)
   : slot_rep(nullptr, &destroy, &dup), functor_(functor)
   {
-    sigc::visit_each_type<trackable>(slot_do_bind(this), functor_);
+    sigc::visit_each_trackable(slot_do_bind(this), functor_);
   }
 
   inline typed_slot_rep(const typed_slot_rep& cl)
   : slot_rep(cl.call_, &destroy, &dup), functor_(cl.functor_)
   {
-    sigc::visit_each_type<trackable>(slot_do_bind(this), functor_);
+    sigc::visit_each_trackable(slot_do_bind(this), functor_);
   }
 
   typed_slot_rep& operator=(const typed_slot_rep& src) = delete;
@@ -58,7 +58,7 @@ public:
   {
     call_ = nullptr;
     destroy_ = nullptr;
-    sigc::visit_each_type<trackable>(slot_do_unbind(this), functor_);
+    sigc::visit_each_trackable(slot_do_unbind(this), functor_);
   }
 
 private:
@@ -70,7 +70,7 @@ private:
     self* self_ = static_cast<self*>(reinterpret_cast<slot_rep*>(data));
     self_->call_ = nullptr;
     self_->destroy_ = nullptr;
-    sigc::visit_each_type<trackable>(slot_do_unbind(self_), self_->functor_);
+    sigc::visit_each_trackable(slot_do_unbind(self_), self_->functor_);
     self_->functor_.~adaptor_type();
     /* don't call disconnect() here: destroy() is either called
      * a) from the parent itself (in which case disconnect() leads to a segfault) or
diff --git a/sigc++/visit_each.h b/sigc++/visit_each.h
index 71f3ab9..93e5b3c 100644
--- a/sigc++/visit_each.h
+++ b/sigc++/visit_each.h
@@ -24,6 +24,8 @@
 namespace sigc
 {
 
+class trackable;
+
 #ifndef DOXYGEN_SHOULD_SKIP_THIS
 namespace internal
 {
@@ -157,11 +159,11 @@ visit_each(const T_action& _A_action, const T_functor& _A_functor)
  *
  * @ingroup sigcfunctors
  */
-template <class T_type, class T_action, class T_functor>
+template <class T_action, class T_functor>
 void
-visit_each_type(const T_action& _A_action, const T_functor& _A_functor)
+visit_each_trackable(const T_action& _A_action, const T_functor& _A_functor)
 {
-  internal::limit_derived_target<T_type, T_action> limited_action(_A_action);
+  internal::limit_derived_target<sigc::trackable, T_action> limited_action(_A_action);
 
   sigc::visit_each(limited_action, _A_functor);
 }
diff --git a/tests/test_visit_each_type.cc b/tests/test_visit_each_type.cc
index 6d1fc9c..646adf8 100644
--- a/tests/test_visit_each_type.cc
+++ b/tests/test_visit_each_type.cc
@@ -17,16 +17,12 @@ namespace
 TestUtilities* util = nullptr;
 std::ostringstream result_stream;
 
-class trackable
-{
-};
-
-struct A : public trackable
+struct A : public sigc::trackable
 {
   A() {}
 };
 
-template <class T_type, bool I_derived = std::is_base_of<trackable, T_type>::value>
+template <class T_type, bool I_derived = std::is_base_of<sigc::trackable, T_type>::value>
 struct with_trackable;
 
 template <class T_type>
@@ -78,22 +74,12 @@ void test_hit_all_targets()
   util->check_result(result_stream, "hit all targets: other trackable int: 1 other ");
 }
 
-void test_hit_all_ints()
-{
-  int i = 2;
-  A a;
-  result_stream << "hit all ints: ";
-  sigc::visit_each_type<int>(
-    print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), i), sigc::ptr_fun(&bar)));
-  util->check_result(result_stream, "hit all ints: int: 2 ");
-}
-
 void test_hit_all_trackable()
 {
   int i = 3;
   A a;
   result_stream << "hit all trackable: ";
-  sigc::visit_each_type<trackable>(
+  sigc::visit_each_trackable(
     print(), sigc::compose(sigc::bind(sigc::ptr_fun(&foo), std::ref(a), i), sigc::ptr_fun(&bar)));
   util->check_result(result_stream, "hit all trackable: trackable ");
 }
@@ -107,7 +93,6 @@ main(int argc, char* argv[])
     return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;
 
   test_hit_all_targets();
-  test_hit_all_ints();
   test_hit_all_trackable();
 
   return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]