chsvlib
chsv helper source code

◆ u8_decode_string() [3/8]

std::basic_string<ucp_t, ReboundCharTraits, 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 a custom type of allocator. .

Template Parameters
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 Allocator and CharTraits obtained from respecializing the
typename BasicStringType::traits_type
type for Chusov::String::ucp_t. Other overloads of u8_decode_string (see below) allow omission of the AllocatorTo specification and specification of a custom CharTraits policy of the returned type.
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
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 An overload which requires specification of both the traits policy and the type of the allocator used by the returned string.
u8_decode_string Another overload which allows omitting the AllocatorTo specification and uses an allocator obtained from rebinding of an allocator of the input string str, although the CharTraits policy is required.
u8_decode_string An overload which uses rebound specializations of both traits and allocator templates of str.