25 #ifndef CPP3DS_UTF_HPP
26 #define CPP3DS_UTF_HPP
31 #include <cpp3ds/Config.hpp>
40 template <
unsigned int N>
66 template <
typename In>
67 static In decode(In begin, In end, Uint32& output, Uint32 replacement = 0);
82 template <
typename Out>
83 static Out encode(Uint32 input, Out output, Uint8 replacement = 0);
97 template <
typename In>
98 static In next(In begin, In end);
113 template <
typename In>
114 static std::size_t count(In begin, In end);
130 template <
typename In,
typename Out>
131 static Out fromAnsi(In begin, In end, Out output,
const std::locale& locale = std::locale());
143 template <
typename In,
typename Out>
144 static Out fromWide(In begin, In end, Out output);
156 template <
typename In,
typename Out>
157 static Out fromLatin1(In begin, In end, Out output);
174 template <
typename In,
typename Out>
175 static Out toAnsi(In begin, In end, Out output,
char replacement = 0,
const std::locale& locale = std::locale());
188 template <
typename In,
typename Out>
189 static Out toWide(In begin, In end, Out output,
wchar_t replacement = 0);
202 template <
typename In,
typename Out>
203 static Out toLatin1(In begin, In end, Out output,
char replacement = 0);
220 template <
typename In,
typename Out>
221 static Out toUtf8(In begin, In end, Out output);
233 template <
typename In,
typename Out>
234 static Out toUtf16(In begin, In end, Out output);
246 template <
typename In,
typename Out>
247 static Out toUtf32(In begin, In end, Out output);
273 template <
typename In>
274 static In decode(In begin, In end, Uint32& output, Uint32 replacement = 0);
289 template <
typename Out>
290 static Out encode(Uint32 input, Out output, Uint16 replacement = 0);
304 template <
typename In>
305 static In next(In begin, In end);
320 template <
typename In>
321 static std::size_t count(In begin, In end);
337 template <
typename In,
typename Out>
338 static Out fromAnsi(In begin, In end, Out output,
const std::locale& locale = std::locale());
350 template <
typename In,
typename Out>
351 static Out fromWide(In begin, In end, Out output);
363 template <
typename In,
typename Out>
364 static Out fromLatin1(In begin, In end, Out output);
381 template <
typename In,
typename Out>
382 static Out toAnsi(In begin, In end, Out output,
char replacement = 0,
const std::locale& locale = std::locale());
395 template <
typename In,
typename Out>
396 static Out toWide(In begin, In end, Out output,
wchar_t replacement = 0);
409 template <
typename In,
typename Out>
410 static Out toLatin1(In begin, In end, Out output,
char replacement = 0);
422 template <
typename In,
typename Out>
423 static Out toUtf8(In begin, In end, Out output);
440 template <
typename In,
typename Out>
441 static Out toUtf16(In begin, In end, Out output);
453 template <
typename In,
typename Out>
454 static Out toUtf32(In begin, In end, Out output);
481 template <
typename In>
482 static In decode(In begin, In end, Uint32& output, Uint32 replacement = 0);
498 template <
typename Out>
499 static Out encode(Uint32 input, Out output, Uint32 replacement = 0);
513 template <
typename In>
514 static In next(In begin, In end);
528 template <
typename In>
529 static std::size_t count(In begin, In end);
545 template <
typename In,
typename Out>
546 static Out fromAnsi(In begin, In end, Out output,
const std::locale& locale = std::locale());
558 template <
typename In,
typename Out>
559 static Out fromWide(In begin, In end, Out output);
571 template <
typename In,
typename Out>
572 static Out fromLatin1(In begin, In end, Out output);
589 template <
typename In,
typename Out>
590 static Out toAnsi(In begin, In end, Out output,
char replacement = 0,
const std::locale& locale = std::locale());
603 template <
typename In,
typename Out>
604 static Out toWide(In begin, In end, Out output,
wchar_t replacement = 0);
617 template <
typename In,
typename Out>
618 static Out toLatin1(In begin, In end, Out output,
char replacement = 0);
630 template <
typename In,
typename Out>
631 static Out toUtf8(In begin, In end, Out output);
643 template <
typename In,
typename Out>
644 static Out toUtf16(In begin, In end, Out output);
661 template <
typename In,
typename Out>
662 static Out toUtf32(In begin, In end, Out output);
677 template <
typename In>
678 static Uint32 decodeAnsi(In input,
const std::locale& locale = std::locale());
692 template <
typename In>
693 static Uint32 decodeWide(In input);
710 template <
typename Out>
711 static Out encodeAnsi(Uint32 codepoint, Out output,
char replacement = 0,
const std::locale& locale = std::locale());
727 template <
typename Out>
728 static Out encodeWide(Uint32 codepoint, Out output,
wchar_t replacement = 0);
731 #include <cpp3ds/System/Utf.inl>
Specialization of the Utf template for UTF-32.
Specialization of the Utf template for UTF-8.
Utility class providing generic functions for UTF conversions.
Specialization of the Utf template for UTF-16.