#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