Change implementation to use templates
This commit is contained in:
parent
ad3c216bb5
commit
8d1585f065
2 changed files with 20 additions and 20 deletions
|
@ -126,7 +126,7 @@ class wide_string_input_adapter : public input_adapter_protocol
|
|||
// check if buffer needs to be filled
|
||||
if (utf8_bytes_index == utf8_bytes_filled)
|
||||
{
|
||||
fill_buffer(sizeof(typename WideStringType::value_type));
|
||||
fill_buffer<sizeof(typename WideStringType::value_type)>();
|
||||
|
||||
assert(utf8_bytes_filled > 0);
|
||||
assert(utf8_bytes_index == 0);
|
||||
|
@ -139,16 +139,16 @@ class wide_string_input_adapter : public input_adapter_protocol
|
|||
}
|
||||
|
||||
private:
|
||||
void fill_buffer(size_t size)
|
||||
template<size_t T>
|
||||
void fill_buffer()
|
||||
{
|
||||
if (2 == size)
|
||||
{
|
||||
fill_buffer_utf16();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill_buffer_utf32();
|
||||
}
|
||||
fill_buffer_utf32();
|
||||
}
|
||||
|
||||
template<>
|
||||
void fill_buffer<2>()
|
||||
{
|
||||
fill_buffer_utf16();
|
||||
}
|
||||
|
||||
void fill_buffer_utf16()
|
||||
|
|
|
@ -2004,7 +2004,7 @@ class wide_string_input_adapter : public input_adapter_protocol
|
|||
// check if buffer needs to be filled
|
||||
if (utf8_bytes_index == utf8_bytes_filled)
|
||||
{
|
||||
fill_buffer(sizeof(typename WideStringType::value_type));
|
||||
fill_buffer<sizeof(typename WideStringType::value_type)>();
|
||||
|
||||
assert(utf8_bytes_filled > 0);
|
||||
assert(utf8_bytes_index == 0);
|
||||
|
@ -2017,18 +2017,18 @@ class wide_string_input_adapter : public input_adapter_protocol
|
|||
}
|
||||
|
||||
private:
|
||||
void fill_buffer(size_t size)
|
||||
template<size_t T>
|
||||
void fill_buffer()
|
||||
{
|
||||
if (2 == size)
|
||||
{
|
||||
fill_buffer_utf16();
|
||||
}
|
||||
else
|
||||
{
|
||||
fill_buffer_utf32();
|
||||
}
|
||||
fill_buffer_utf32();
|
||||
}
|
||||
|
||||
template<>
|
||||
void fill_buffer<2>()
|
||||
{
|
||||
fill_buffer_utf16();
|
||||
}
|
||||
|
||||
void fill_buffer_utf16()
|
||||
{
|
||||
utf8_bytes_index = 0;
|
||||
|
|
Loading…
Reference in a new issue