#if !defined(INCLUDED_SIGNALFWD_H) #define INCLUDED_SIGNALFWD_H class SignalHandler; template class SignalHandler1; template class SignalHandler2; template class SignalHandler3; template class Opaque; ///\brief A pointer that always has a well-defined value. /// If no value is specified, the appropriate null value is used. template class Handle { Type* p; public: Handle() : p(0) { } explicit Handle(Type* p) : p(p) { } Type* get() const { return p; } bool isNull() const { return p == 0; } }; template class SignalFwd { public: typedef Handle< Opaque > handler_id_type; }; typedef SignalFwd::handler_id_type SignalHandlerId; #endif