X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FUtils%2FTypeIdValue.hh;h=f901ef8b8977f379f5d663de66af9ccd1b6932b7;hb=93d9568d448749dc187e7622b733a4a3caa319df;hp=85eebf03df0ae7184dcc3b56282023d08cb6c242;hpb=601d1f509f5bb24df167a4dd5a20da67a0af9af8;p=senf.git diff --git a/senf/Utils/TypeIdValue.hh b/senf/Utils/TypeIdValue.hh index 85eebf0..f901ef8 100644 --- a/senf/Utils/TypeIdValue.hh +++ b/senf/Utils/TypeIdValue.hh @@ -33,7 +33,7 @@ #include //#include "TypeIdValue.mpp" -///////////////////////////////hh.p//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// namespace senf { @@ -43,9 +43,9 @@ namespace senf { class TypeIdValue : public boost::totally_ordered { public: - /////////////////////////////////////////////////////////////////////////// + //-//////////////////////////////////////////////////////////////////////// ///\name Structors and default members - ///@{ + //\{ // my default constructor // my copy constructor @@ -54,49 +54,49 @@ namespace senf { // no conversion constructors TypeIdValue(); - TypeIdValue(TypeIdValue const & other); - TypeIdValue const & operator=(TypeIdValue const & other); + TypeIdValue(std::type_info const & v); - ///@} - /////////////////////////////////////////////////////////////////////////// + //\} + //-//////////////////////////////////////////////////////////////////////// bool operator==(TypeIdValue const & other) const; bool operator<(TypeIdValue const & other) const; std::string name() const; + std::string prettyName() const; + std::type_info const & id() const; protected: private: - template TypeIdValue(Type *); - - struct Value { - virtual ~Value(); - virtual std::type_info const & id() = 0; - virtual Value * clone() = 0; - }; - - template - struct ValueImpl : public Value { - virtual std::type_info const & id(); - virtual Value * clone(); - }; - - boost::scoped_ptr value_; - - template friend TypeIdValue const typeIdValue(); + std::type_info const * p_; }; + /** + \related TypeIdValue + */ TypeIdValue const typeIdValue(); + /** + \related TypeIdValue + */ template TypeIdValue const typeIdValue(); + /** + \related TypeIdValue + */ + template + TypeIdValue const typeIdValue(Type const & ob); + + /** + \related TypeIdValue + */ std::ostream & operator<<(std::ostream & os, TypeIdValue const & v); } -///////////////////////////////hh.e//////////////////////////////////////// +//-///////////////////////////////////////////////////////////////////////////////////////////////// #include "TypeIdValue.cci" //#include "TypeIdValue.ct" #include "TypeIdValue.cti"