00001 00015 #ifndef _DLR_COMMON_TAGS_H_ 00016 #define _DLR_COMMON_TAGS_H_ 00017 00018 #include <cstdlib> 00019 00020 namespace dlr { 00021 00022 namespace common { 00023 00047 template <class Type> class type_tag {}; 00048 00049 // Now some convenient instances of these tags. 00050 00055 extern type_tag<char> Char; 00056 00061 extern type_tag<double> Double; 00062 00067 extern type_tag<float> Float; 00068 00073 extern type_tag<int> Int; 00074 00079 extern type_tag<short> Short; 00080 00085 extern type_tag<size_t> SizeT; 00086 00091 extern type_tag<unsigned char> UnsignedChar; 00092 00097 extern type_tag<unsigned short> UnsignedShort; 00098 00099 } // namespace common 00100 00101 } // namespace dlr 00102 00103 00104 /* ======= Declarations to maintain compatibility with legacy code. ======= */ 00105 00106 namespace dlr { 00107 00108 using common::type_tag; 00109 using common::Char; 00110 using common::Double; 00111 using common::Float; 00112 using common::Int; 00113 using common::Short; 00114 using common::SizeT; 00115 using common::UnsignedChar; 00116 using common::UnsignedShort; 00117 00118 } // namespace dlr 00119 00120 #endif // #ifndef _DLR_COMMON_TAGS_H_
1.5.4