Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
A template class that describes an object that can serve as a locale facet. It is able to control conversions between a sequence of values used to encode characters within the program and a sequence of values used to encode characters outside the program.
For a list of all members of this type, see codecvt Members.
template<class CharType, class Byte, class StateType>
class codecvt
: public locale::facet, codecvt_base {
public:
typedef CharType intern_type;
typedef Byte extern_type;
typedef StateType state_type;
explicit codecvt (size_t _Refs = 0);
result in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
result out (
StateType& _State,
const Elem *_First1,
const Elem *_Last1,
const Elem *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
result unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
bool always_noconv () const throw();
int max_length () const throw();
int length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _N2
) const throw();
int encoding () const throw();
static locale::id id;
protected:
~codecvt();
virtual result do_in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
virtual result do_out (
StateType& _State,
const CharType *_First1,
const CharType *_Last1,
const CharType *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual result do_unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual bool do_always_noconv () const throw();
virtual int do_max_length () const throw();
virtual int do_encoding () const throw();
virtual int do_length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _Len2
) const throw();
};
Parameters
CharType
The type used within a program to encode characters.Byte
A type used to encode characters outside a program.StateType
A type that can be used to represent intermediate states of a conversion between internal and external types of character representations.
Remarks
The template class describes an object that can serve as a locale facet, to control conversions between a sequence of values of type CharType and a sequence of values of type Byte. The class StateType characterizes the transformation -- and an object of class StateType stores any necessary state information during a conversion.
The internal encoding uses a representation with a fixed number of bytes per character, usually either type char or type wchar_t.
As with any locale facet, the static object id has an initial stored value of zero. The first attempt to access its stored value stores a unique positive value inid.
The template versions of do_in and do_out always return codecvt_base::noconv.
The Standard C++ Library defines several explicit specializations:
template<>
codecvt<wchar_t, char, mbstate_t>
converts between wchar_t and char sequences.
template<>
codecvt<char16_t, char, mbstate_t>
converts between char16_t sequences encoded as UTF-16 and char sequences encoded as UTF-8.
template<>
codecvt<char32_t, char, mbstate_t>
converts between char32_t sequences encoded as UTF-32 (UCS-4) and char sequences encoded as UTF-8.
Requirements
Header: <locale>
Namespace: std
See Also
Reference
Thread Safety in the Standard C++ Library