template class EE::Utf<32>¶
Overview¶
Specialization of the Utf template for UTF-32. More…
#include <utf.hpp> template <> class Utf<32> { public: // methods template <typename In> static In decode(In begin, In end, Uint32& output, Uint32 replacement = 0); template <typename Out> static Out encode(Uint32 input, Out output, Uint32 replacement = 0); template <typename In> static In next(In begin, In end); template <typename In> static std::size_t count(In begin, In end); template <typename In, typename Out> static Out fromAnsi(In begin, In end, Out output, const std::locale& locale = std::locale()); template <typename In, typename Out> static Out fromWide(In begin, In end, Out output); template <typename In, typename Out> static Out fromLatin1(In begin, In end, Out output); template <typename In, typename Out> static Out toAnsi(In begin, In end, Out output, char replacement = 0, const std::locale& locale = std::locale()); template <typename In, typename Out> static Out toWide(In begin, In end, Out output, wchar_t replacement = 0); template <typename In, typename Out> static Out toLatin1(In begin, In end, Out output, char replacement = 0); template <typename In, typename Out> static Out toUtf8(In begin, In end, Out output); template <typename In, typename Out> static Out toUtf16(In begin, In end, Out output); template <typename In, typename Out> static Out toUtf32(In begin, In end, Out output); template <typename In> static Uint32 decodeAnsi(In input, const std::locale& locale = std::locale()); template <typename In> static Uint32 decodeWide(In input); template <typename Out> static Out encodeAnsi(Uint32 codepoint, Out output, char replacement = 0, const std::locale& locale = std::locale()); template <typename Out> static Out encodeWide(Uint32 codepoint, Out output, wchar_t replacement = 0); };
Detailed Documentation¶
Specialization of the Utf template for UTF-32.
Methods¶
template <typename In> static In decode(In begin, In end, Uint32& output, Uint32 replacement = 0)
Decode a single UTF-32 character.
Decoding a character means finding its unique 32-bits code (called the codepoint) in the Unicode standard. For UTF-32, the character value is the same as the codepoint.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Codepoint of the decoded UTF-32 character |
replacement |
Replacement character to use in case the UTF-8 sequence is invalid |
Returns:
Iterator pointing to one past the last read element of the input sequence
template <typename Out> static Out encode(Uint32 input, Out output, Uint32 replacement = 0)
Encode a single UTF-32 character.
Encoding a character means converting a unique 32-bits code (called the codepoint) in the target encoding, UTF-32. For UTF-32, the codepoint is the same as the character value.
Parameters:
input |
Codepoint to encode as UTF-32 |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement for characters not convertible to UTF-32 (use 0 to skip them) |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In> static In next(In begin, In end)
Advance to the next UTF-32 character.
This function is trivial for UTF-32, which can store every character in a single storage element.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
Returns:
Iterator pointing to one past the last read element of the input sequence
template <typename In> static std::size_t count(In begin, In end)
Count the number of characters of a UTF-32 sequence.
This function is trivial for UTF-32, which can store every character in a single storage element.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
Returns:
Iterator pointing to one past the last read element of the input sequence
template <typename In, typename Out> static Out fromAnsi(In begin, In end, Out output, const std::locale& locale = std::locale())
Convert an ANSI characters range to UTF-32.
The current global locale will be used by default, unless you pass a custom one in the locale parameter.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
locale |
Locale to use for conversion |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out fromWide(In begin, In end, Out output)
Convert a wide characters range to UTF-32.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out fromLatin1(In begin, In end, Out output)
Convert a latin-1 (ISO-8859-1) characters range to UTF-32.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toAnsi(In begin, In end, Out output, char replacement = 0, const std::locale& locale = std::locale())
Convert an UTF-32 characters range to ANSI characters.
The current global locale will be used by default, unless you pass a custom one in the locale parameter.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement for characters not convertible to ANSI (use 0 to skip them) |
locale |
Locale to use for conversion |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toWide(In begin, In end, Out output, wchar_t replacement = 0)
Convert an UTF-32 characters range to wide characters.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement for characters not convertible to wide (use 0 to skip them) |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toLatin1(In begin, In end, Out output, char replacement = 0)
Convert an UTF-16 characters range to latin-1 (ISO-8859-1) characters.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement for characters not convertible to wide (use 0 to skip them) |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toUtf8(In begin, In end, Out output)
Convert a UTF-32 characters range to UTF-8.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toUtf16(In begin, In end, Out output)
Convert a UTF-32 characters range to UTF-16.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In, typename Out> static Out toUtf32(In begin, In end, Out output)
Convert a UTF-32 characters range to UTF-32.
This functions does nothing more than a direct copy; it is defined only to provide the same interface as other specializations of the EE::Utf<> template, and allow generic code to be written on top of it.
Parameters:
begin |
Iterator pointing to the beginning of the input sequence |
end |
Iterator pointing to the end of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
Returns:
Iterator to the end of the output sequence which has been written
template <typename In> static Uint32 decodeAnsi(In input, const std::locale& locale = std::locale())
Decode a single ANSI character to UTF-32.
This function does not exist in other specializations of EE::Utf<>, it is defined for convenience (it is used by several other conversion functions).
Parameters:
input |
Input ANSI character |
locale |
Locale to use for conversion |
Returns:
Converted character
template <typename In> static Uint32 decodeWide(In input)
Decode a single wide character to UTF-32.
This function does not exist in other specializations of EE::Utf<>, it is defined for convenience (it is used by several other conversion functions).
Parameters:
input |
Input wide character |
Returns:
Converted character
template <typename Out> static Out encodeAnsi(Uint32 codepoint, Out output, char replacement = 0, const std::locale& locale = std::locale())
Encode a single UTF-32 character to ANSI.
This function does not exist in other specializations of EE::Utf<>, it is defined for convenience (it is used by several other conversion functions).
Parameters:
codepoint |
Iterator pointing to the beginning of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement if the input character is not convertible to ANSI (use 0 to skip it) |
locale |
Locale to use for conversion |
Returns:
Iterator to the end of the output sequence which has been written
template <typename Out> static Out encodeWide(Uint32 codepoint, Out output, wchar_t replacement = 0)
Encode a single UTF-32 character to wide.
This function does not exist in other specializations of EE::Utf<>, it is defined for convenience (it is used by several other conversion functions).
Parameters:
codepoint |
Iterator pointing to the beginning of the input sequence |
output |
Iterator pointing to the beginning of the output sequence |
replacement |
Replacement if the input character is not convertible to wide (use 0 to skip it) |
Returns:
Iterator to the end of the output sequence which has been written