namespace boost {
namespace signals {
template<typename Signature, typename T> struct slot_selector;
template<typename Signature, typename T>
struct is_component<slot_selector< Signature, T >>;
template<typename Signature, typename T>
struct get_signal<slot_selector< Signature, T >>;
template<typename Signature, typename T>
struct get_signal_type<slot_selector< Signature, T >>;
template<typename Signature, typename T>
struct get_slot<Signature, slot_selector< Signature, T >>;
// Allows arbitrary member functions to serve as slots.
template<typename Signature, typename T>
slot_selector< Signature, T >
make_slot_selector(unspecified func, T & object);
}
}