+struct TypeInfo<std::string, false>: StringType { };
+
+template<>
+struct TypeInfo<char *, false>: StringType { };
+
+template<>
+struct TypeInfo<const char *, false>: StringType { };
+
+template<typename T>
+struct TypeInfo<const T, false>: TypeInfo<T> { };
+
+template<typename T>
+struct TypeInfo<T &, false>: TypeInfo<T> { };