27
Strings library
[strings]
27.2
Character traits
[char.traits]
27.2.4
char_
traits
specializations
[char.traits.specializations]
27.2.4.4
struct char_
traits<char16_
t>
[char.traits.specializations.char16.t]
🔗
namespace
std
{
template
<
>
struct
char_traits
<
char16_t
>
{
using
char_type
=
char16_t
;
using
int_type
=
uint_least16_t;
using
off_type
=
streamoff;
using
pos_type
=
u16streampos;
using
state_type
=
mbstate_t;
using
comparison_category
=
strong_ordering;
static
constexpr
void
assign
(
char_type
&
c1,
const
char_type
&
c2
)
noexcept
;
static
constexpr
bool
eq
(
char_type c1, char_type c2
)
noexcept
;
static
constexpr
bool
lt
(
char_type c1, char_type c2
)
noexcept
;
static
constexpr
int
compare
(
const
char_type
*
s1,
const
char_type
*
s2, size_t n
)
;
static
constexpr
size_t length
(
const
char_type
*
s
)
;
static
constexpr
const
char_type
*
find
(
const
char_type
*
s, size_t n,
const
char_type
&
a
)
;
static
constexpr
char_type
*
move
(
char_type
*
s1,
const
char_type
*
s2, size_t n
)
;
static
constexpr
char_type
*
copy
(
char_type
*
s1,
const
char_type
*
s2, size_t n
)
;
static
constexpr
char_type
*
assign
(
char_type
*
s, size_t n, char_type a
)
;
static
constexpr
int_type not_eof
(
int_type c
)
noexcept
;
static
constexpr
char_type to_char_type
(
int_type c
)
noexcept
;
static
constexpr
int_type to_int_type
(
char_type c
)
noexcept
;
static
constexpr
bool
eq_int_type
(
int_type c1, int_type c2
)
noexcept
;
static
constexpr
int_type eof
(
)
noexcept
;
}
;
}
1
#
The two-argument members
assign
,
eq
, and
lt
are defined identically to the built-in operators
=
,
=
=
, and
<
, respectively
.
2
#
The member
eof
(
)
returns an
implementation-defined constant that cannot appear as a valid UTF-16 code unit
.