create holder class

This commit is contained in:
ELynx 2016-06-27 13:46:37 +03:00
parent e3e90de02a
commit 368a3b78a2

View File

@ -58,14 +58,19 @@ namespace chaiscript
// Generic for u16, u32 and (probably) wchar // Generic for u16, u32 and (probably) wchar
template<typename string_type> template<typename string_type>
string_type str_from_ll(long long val) struct Char_Parser_Helper
{
static string_type str_from_ll(long long val)
{ {
return string_type(1, string_type::value_type(val)); //size, character return string_type(1, string_type::value_type(val)); //size, character
} }
};
// Specialization for char // Specialization for char
template<> template<>
std::string str_from_ll<std::string>(long long val) struct Char_Parser_Helper<std::string>
{
static std::string str_from_ll(long long val)
{ {
std::string::value_type c[2]; std::string::value_type c[2];
c[1] = std::string::value_type(val); c[1] = std::string::value_type(val);
@ -78,6 +83,7 @@ namespace chaiscript
return std::string(c, 2); //char buffer, size return std::string(c, 2); //char buffer, size
} }
};
} }
class ChaiScript_Parser { class ChaiScript_Parser {
@ -1019,7 +1025,7 @@ namespace chaiscript
{ {
auto val = stoll(hex_matches, 0, 16); auto val = stoll(hex_matches, 0, 16);
hex_matches.clear(); hex_matches.clear();
match += detail::str_from_ll<string_type>(val); match += detail::Char_Parser_Helper<string_type>::str_from_ll(val);
is_escaped = false; is_escaped = false;
is_unicode = false; is_unicode = false;
} }