Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00035 #ifndef KEYVALUE_UTIL_ISBASIC_H_
00036 #define KEYVALUE_UTIL_ISBASIC_H_
00037
00038 #include <boost/type_traits/is_enum.hpp>
00039
00040 #include "keyvalue/extern/String.h"
00041 #include "keyvalue/extern/Ptime.h"
00042
00043 namespace keyvalue {
00044 namespace util {
00045
00058 template <typename ElementType>
00059 struct IsBasic {
00060 enum { value = 0 };
00061 };
00062
00063 template <>
00064 struct IsBasic<bool> {
00065 enum { value = 1 };
00066 };
00067
00068 template <>
00069 struct IsBasic<double> {
00070 enum { value = 1 };
00071 };
00072
00073 template <>
00074 struct IsBasic<string> {
00075 enum { value = 1 };
00076 };
00077
00078 template <>
00079 struct IsBasic<ptime> {
00080 enum { value = 1 };
00081 };
00082
00083 template <>
00084 struct IsBasic<unsigned int> {
00085 enum { value = 1 };
00086 };
00087
00100 template <typename ElementType>
00101 struct IsBasicOrEnum {
00102 enum { value = (boost::is_enum<ElementType>::value ||
00103 IsBasic<ElementType>::value ? 1 : 0) };
00104 };
00105
00106 }
00107 }
00108
00109 #endif // KEYVALUE_UTIL_ISBASIC_H_