| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
codecvt::unshiftcodecvt::do_unshift | ||||
Defined in header <locale> | ||
public: result unshift( StateT& state, ExternT* to, ExternT* to_end, | (1) | |
protected: virtual result do_unshift( StateT& state, ExternT* to, ExternT* to_end, | (2) | |
do_unshift of the most derived class.codecvt facet is state-dependent, andstate represents a conversion state that is not the initial shift state, writes the characters necessary to return to the initial shift state. The characters are written to a character array whose first element is pointed to byto. No more thanto_end- to characters are written. The parameterto_next is updated to point one past the last character written.Contents |
A value of typestd::codecvt_base::result, indicating the success status as follows:
ok | all necessary characters were written.state now represents initial shift state |
partial | not enough space in the output buffer.to_next== to_end |
error | an unspecified error has occurred |
noconv | the encoding is not state-dependent, no termination sequence necessary |
This function is called bystd::basic_filebuf::close() and in other situations when finalizing a state-dependent multibyte character sequence.
| This section is incomplete Reason: no example |
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 305 | C++98 | std::codecvt<wchar_t,char,std::mbstate_t>::do_unshift was required not to write any character | not required |
| LWG 380 | C++98 | the meaning of returningpartial was 'more characters need to be supplied to complete termination', but no character is supplied | corrected to indicating insufficient buffer space |
| LWG 381 | C++98 | state was not required to be valid, and error is returned ifstate is invalid | state is required to be valid, and returningerror indicates an error |
| LWG 664 | C++98 | std::codecvt<char,char,std::mbstate_t>::do_unshift was required not to write any character | not required |
| LWG 665 | C++98 | std::codecvt<char,char,std::mbstate_t>::do_unshift was required to returnnoconv | not required |
| converts a wide character to its multibyte representation, given state (function)[edit] | |
[virtual] | converts a string fromInternT toExternT, such as when writing to file(virtual protected member function)[edit] |