- Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::codecvt::unshift,do_unshift(3) | C++ Standard Libary | std::codecvt::unshift,do_unshift(3) | 
NAME¶
std::codecvt::unshift,do_unshift - std::codecvt::unshift,do_unshift
Synopsis¶
 Defined in header <locale>
  
   public:
  
   result unshift( StateT& state, ExternT* to, ExternT* to_end,
  (1)
  
   ExternT*& to_next ) const;
  
   protected:
  
   virtual result do_unshift( StateT& state, ExternT* to, ExternT* to_end,
    (2)
  
   ExternT*& to_next ) const;
  
   1) Public member function, calls the member function do_unshift of the most
    derived
  
   class.
  
   2) If the encoding represented by this codecvt facet is state-dependent, and
    state
  
   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 by to. No more
    than
  
   to_end - to characters are written. The parameter to_next is updated to point
    one
  
   past the last character written.
Return value¶
A value of type std::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
Notes¶
 This function is called by std::basic_filebuf::close() and in
    other situations when
  
   finalizing a state-dependent multibyte character sequence.
Example¶
 This section is incomplete
  
   Reason: no example
  
   Defect reports
  
   The following behavior-changing defect reports were applied retroactively to
  
   previously published C++ standards.
  
   DR Applied to Behavior as published Correct behavior
  
   std::codecvt<wchar_t, char,
  
   LWG 305 C++98 std::mbstate_t>::do_unshift not required
  
   was required not to write any character
  
   the meaning of returning partial was 'more corrected to
  
   LWG 380 C++98 characters need to indicating
  
   be supplied to complete termination', but no insufficient buffer
  
   character is supplied space
  
   state is required to
  
   LWG 381 C++98 state was not required to be valid, and be valid, and
  
   error is returned if state is invalid returning error
  
   indicates an error
  
   std::codecvt<char, char,
  
   LWG 664 C++98 std::mbstate_t>::do_unshift not required
  
   was required not to write any character
  
   std::codecvt<char, char,
  
   LWG 665 C++98 std::mbstate_t>::do_unshift not required
  
   was required to return noconv
See also¶
 wcrtomb converts a wide character to its multibyte
    representation, given state
  
   (function)
  
   do_out converts a string from InternT to ExternT, such as when writing to
    file
  
   [virtual] (virtual protected member function)
Category:¶
* Todo no example
| 2024.06.10 | http://cppreference.com |