Static Public Member Functions | List of all members
cpp3ds::Utf< 8 > Class Template Reference

Specialization of the Utf template for UTF-8. More...

#include <Utf.hpp>

Static Public Member Functions

template<typename In >
static In decode (In begin, In end, Uint32 &output, Uint32 replacement=0)
 Decode a single UTF-8 character. More...
 
template<typename Out >
static Out encode (Uint32 input, Out output, Uint8 replacement=0)
 Encode a single UTF-8 character. More...
 
template<typename In >
static In next (In begin, In end)
 Advance to the next UTF-8 character. More...
 
template<typename In >
static std::size_t count (In begin, In end)
 Count the number of characters of a UTF-8 sequence. More...
 
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-8. More...
 
template<typename In , typename Out >
static Out fromWide (In begin, In end, Out output)
 Convert a wide characters range to UTF-8. More...
 
template<typename In , typename Out >
static Out fromLatin1 (In begin, In end, Out output)
 Convert a latin-1 (ISO-5589-1) characters range to UTF-8. More...
 
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-8 characters range to ANSI characters. More...
 
template<typename In , typename Out >
static Out toWide (In begin, In end, Out output, wchar_t replacement=0)
 Convert an UTF-8 characters range to wide characters. More...
 
template<typename In , typename Out >
static Out toLatin1 (In begin, In end, Out output, char replacement=0)
 Convert an UTF-8 characters range to latin-1 (ISO-5589-1) characters. More...
 
template<typename In , typename Out >
static Out toUtf8 (In begin, In end, Out output)
 Convert a UTF-8 characters range to UTF-8. More...
 
template<typename In , typename Out >
static Out toUtf16 (In begin, In end, Out output)
 Convert a UTF-8 characters range to UTF-16. More...
 
template<typename In , typename Out >
static Out toUtf32 (In begin, In end, Out output)
 Convert a UTF-8 characters range to UTF-32. More...
 

Detailed Description

template<>
class cpp3ds::Utf< 8 >

Specialization of the Utf template for UTF-8.

Definition at line 48 of file Utf.hpp.

Member Function Documentation

template<typename In >
static std::size_t cpp3ds::Utf< 8 >::count ( In  begin,
In  end 
)
static

Count the number of characters of a UTF-8 sequence.

This function is necessary for multi-elements encodings, as a single character may use more than 1 storage element, thus the total size can be different from (begin - end).

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator 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 In cpp3ds::Utf< 8 >::decode ( In  begin,
In  end,
Uint32 &  output,
Uint32  replacement = 0 
)
static

Decode a single UTF-8 character.

Decoding a character means finding its unique 32-bits code (called the codepoint) in the Unicode standard.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputCodepoint of the decoded UTF-8 character
replacementReplacement 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 cpp3ds::Utf< 8 >::encode ( Uint32  input,
Out  output,
Uint8  replacement = 0 
)
static

Encode a single UTF-8 character.

Encoding a character means converting a unique 32-bits code (called the codepoint) in the target encoding, UTF-8.

Parameters
inputCodepoint to encode as UTF-8
outputIterator pointing to the beginning of the output sequence
replacementReplacement for characters not convertible to UTF-8 (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 cpp3ds::Utf< 8 >::fromAnsi ( In  begin,
In  end,
Out  output,
const std::locale &  locale = std::locale() 
)
static

Convert an ANSI characters range to UTF-8.

The current global locale will be used by default, unless you pass a custom one in the locale parameter.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator pointing to the beginning of the output sequence
localeLocale to use for conversion
Returns
Iterator to the end of the output sequence which has been written
template<typename In , typename Out >
static Out cpp3ds::Utf< 8 >::fromLatin1 ( In  begin,
In  end,
Out  output 
)
static

Convert a latin-1 (ISO-5589-1) characters range to UTF-8.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator 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 cpp3ds::Utf< 8 >::fromWide ( In  begin,
In  end,
Out  output 
)
static

Convert a wide characters range to UTF-8.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator 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 In cpp3ds::Utf< 8 >::next ( In  begin,
In  end 
)
static

Advance to the next UTF-8 character.

This function is necessary for multi-elements encodings, as a single character may use more than 1 storage element.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator 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 cpp3ds::Utf< 8 >::toAnsi ( In  begin,
In  end,
Out  output,
char  replacement = 0,
const std::locale &  locale = std::locale() 
)
static

Convert an UTF-8 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
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator pointing to the beginning of the output sequence
replacementReplacement for characters not convertible to ANSI (use 0 to skip them)
localeLocale to use for conversion
Returns
Iterator to the end of the output sequence which has been written
template<typename In , typename Out >
static Out cpp3ds::Utf< 8 >::toLatin1 ( In  begin,
In  end,
Out  output,
char  replacement = 0 
)
static

Convert an UTF-8 characters range to latin-1 (ISO-5589-1) characters.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator pointing to the beginning of the output sequence
replacementReplacement 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 cpp3ds::Utf< 8 >::toUtf16 ( In  begin,
In  end,
Out  output 
)
static

Convert a UTF-8 characters range to UTF-16.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator 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 cpp3ds::Utf< 8 >::toUtf32 ( In  begin,
In  end,
Out  output 
)
static

Convert a UTF-8 characters range to UTF-32.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator 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 cpp3ds::Utf< 8 >::toUtf8 ( In  begin,
In  end,
Out  output 
)
static

Convert a UTF-8 characters range to UTF-8.

This functions does nothing more than a direct copy; it is defined only to provide the same interface as other specializations of the cpp3ds::Utf<> template, and allow generic code to be written on top of it.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator 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 cpp3ds::Utf< 8 >::toWide ( In  begin,
In  end,
Out  output,
wchar_t  replacement = 0 
)
static

Convert an UTF-8 characters range to wide characters.

Parameters
beginIterator pointing to the beginning of the input sequence
endIterator pointing to the end of the input sequence
outputIterator pointing to the beginning of the output sequence
replacementReplacement for characters not convertible to wide (use 0 to skip them)
Returns
Iterator to the end of the output sequence which has been written

The documentation for this class was generated from the following file: