chsvlib
chsv helper source code

◆ u8_decode_string() [1/8]

std::basic_string<ucp_t, CharTraitsTo, AllocatorTo> Chusov::String::u8_decode_string ( const BasicStringType &  str)

Produces a C++ string of Unicode 11.0 code points from a C++ UTF-8 encoded string with custom char-traits and allocator classes. .

Template Parameters
CharTraitsTospecifies a CharTraits type used to instantiate the std::basic_string class in order to produce the output string. The
std::char_traits<Chusov::String::ucp_t>
specialization is provided by the chsvlib library.
AllocatorTois a type of an Allocator used to instantiate the returned string object. The allocator is default-constructed.
BasicStringTypeis an instantiation of the std::basic_string or (C++17) std::basic_string_view standard templates for the type char.
Parameters
stris a std::basic_string or (C++17) std::basic_string_view string object specialized for the char characters.
Returns
A newly created string, an instantiation of std::basic_string, with Unicode 11.0 code points as its elements along with the specified CharTraits and Allocator. Other overloads of u8_decode_string (see below) allow omitting the specification of CharTraitsTo and AllocatorTo and use the traits and allocator templates of BasicStringType respecialized for ucp_t.
Note
This overload does not participate in the overload resolution unless BasicStringType is an std::basic_string or (C++17) std::basic_string_view object with the traits_type subtype be a template of one type argument. Use another template to decode a string stored within an arbitrary C++ Container.
Also, for this overload to participate in the overload resolution both
std::is_same<typename CharTraitsTo::char_type, ucp_t>::value
and
std::is_same<typename std::allocator_traits<AllocatorTo>::allocator_type, AllocatorTo>::value
must be true.
Exceptions
Chusov::Exceptions::InvalidCharSequenceExceptionThe specified UTF-8 string is detected to contain an invalid or incomplete multi-byte UTF-8 character.
See also
u8_decode_string Another overload which allows omitting the AllocatorTo specification and use an allocator obtained from rebinding of an allocator of the input string str.
u8_decode_string An overload which requires AllocatorTo but also allows omission of the CharTraitsTo parameter and uses a CharTraits policy of str respecialized for Chusov::String::ucp_t.
u8_decode_string An overload which uses rebound specializations of both traits and allocator templates of str.