Mirror reflection library 0.5.13
|
00001 00010 #ifndef MIRROR_CT_STRING_CONCAT_1105240825_HPP 00011 #define MIRROR_CT_STRING_CONCAT_1105240825_HPP 00012 00013 #include <mirror/ct_string/default.hpp> 00014 00015 MIRROR_NAMESPACE_BEGIN 00016 namespace cts { 00017 00018 template <typename Char, Char ... C> 00019 struct concat<basic_string<Char, C...> > 00020 { 00021 typedef basic_string<Char, C...> type; 00022 }; 00023 00024 template <typename Char, Char ... C1, Char ... C2> 00025 struct concat<basic_string<Char, C1...>, basic_string<Char, C2...> > 00026 { 00027 typedef basic_string<Char, C1..., C2...> type; 00028 }; 00029 00030 template < 00031 typename CTString1, 00032 typename CTString2, 00033 typename CTString3, 00034 typename ... CTStrings 00035 > struct concat< 00036 CTString1, 00037 CTString2, 00038 CTString3, 00039 CTStrings... 00040 > 00041 { 00042 typedef typename concat< 00043 typename concat<CTString1, CTString2>::type, 00044 CTString3, 00045 CTStrings... 00046 >::type type; 00047 }; 00048 00049 } // namespace cts 00050 MIRROR_NAMESPACE_END 00051 00052 #endif //include guard 00053