libsigc++: sigc::visitor< T_functor > Struct Template Reference

sigc::visitor<T_functor>::do_visit_each() performs a functor on each of the targets of a functor. More...

#include <sigc++/visit_each.h>

Static Public Member Functions

template<typename T_action >
static void do_visit_each (const T_action& action, const T_functor& functor)
 

Detailed Description

template<typename T_functor>

struct sigc::visitor< T_functor >

sigc::visitor<T_functor>::do_visit_each() performs a functor on each of the targets of a functor.

All unknown types just call action on them. Add specializations that specialize the T_functor argument for your own functor types, so that subobjects get visited. This is needed to enable auto-disconnection support for your functor types.

Example:
namespace some_ns
{
struct some_functor
{
void operator()() {}
some_possibly_sigc_trackable_derived_type some_data_member;
some_other_functor_type some_other_functor;
};
}
namespace sigc
{
template <>
struct visitor<some_ns::some_functor>
{
template <typename T_action>
static void do_visit_each(const T_action& action,
const some_ns::some_functor& target)
{
sigc::visit_each(action, target.some_data_member);
sigc::visit_each(action, target.some_other_functor);
}
};
}

Member Function Documentation

template <typename T_functor >
template <typename T_action >
static void sigc::visitor< T_functor >::do_visit_each ( const T_action &  action,
const T_functor &  functor 
)
inlinestatic