Mirror reflection library 0.5.13
|
00001 00010 #ifndef MIRROR_CT_STRING_EVALUATE_1105240825_HPP 00011 #define MIRROR_CT_STRING_EVALUATE_1105240825_HPP 00012 00013 #include <mirror/ct_string/basic_string.hpp> 00014 #include <mirror/meta_prog/nil_type.hpp> 00015 00016 MIRROR_NAMESPACE_BEGIN 00017 namespace cts { 00018 00020 00025 template <typename CTString> 00026 struct evaluate 00027 #ifndef MIRROR_DOCUMENTATION_ONLY 00028 : evaluate<typename CTString::type> 00029 { }; 00030 #else 00031 { 00033 typedef basic_string<Char, ...> type; 00034 }; 00035 #endif 00036 00037 template <typename Char, Char ... C> 00038 struct evaluate<basic_string<Char, C...> > 00039 { 00040 typedef basic_string<Char, C...> type; 00041 }; 00042 00043 template <> 00044 struct evaluate<mirror::mp::nil_t> 00045 { 00046 typedef basic_string<char> type; 00047 }; 00048 00049 } // namespace cts 00050 MIRROR_NAMESPACE_END 00051 00052 #endif //include guard 00053