00001 #ifndef _theplu_yat_utility_type_info_
00002 #define _theplu_yat_utility_type_info_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <string>
00026 #include <typeinfo>
00027
00028 namespace theplu {
00029 namespace yat {
00030 namespace utility {
00031
00035 class TypeInfo
00036 {
00037 public:
00041
00042 TypeInfo(void);
00043
00047
00048
00049 TypeInfo(const std::type_info&);
00050
00054 const std::type_info& get(void) const;
00055
00059 std::string name(void) const;
00060
00064 TypeInfo& operator=(const TypeInfo&);
00065
00066 private:
00067
00068
00069
00070
00071
00072 const std::type_info* info_;
00073 };
00074
00079 bool operator==(const TypeInfo&, const TypeInfo&);
00080
00084 bool operator!=(const TypeInfo&, const TypeInfo&);
00085
00090 bool operator<(const TypeInfo& lhs, const TypeInfo& rhs);
00091
00095 bool operator<=(const TypeInfo&, const TypeInfo&);
00096
00100 bool operator>(const TypeInfo&, const TypeInfo&);
00101
00105 bool operator>=(const TypeInfo&, const TypeInfo&);
00106
00107 }}}
00108
00109 #endif