template<typename Traits>
typename Traits::char_type;
typename Traits::int_type;
typename Traits::off_type;
typename Traits::pos_type;
typename Traits::state_type;
} && requires(
typename Traits::char_type
c1,
typename Traits::char_type
c2,
typename Traits::char_type&
cr,
const typename Traits::char_type&
ccr,
typename Traits::char_type*
p,
const typename Traits::char_type*
cp,
typename Traits::int_type
i1,
typename Traits::int_type
i2,
std::size_t n
) {
{ Traits::assign(
cr,
ccr) } -> std::same_as<void>;
{ Traits::eq(ccr, ccr) } -> std::convertible_to<bool>;
{ Traits::lt(ccr, ccr) } -> std::convertible_to<bool>;
{ Traits::compare(cp, cp, n) } -> std::convertible_to<int>;
{ Traits::length(cp) } -> std::convertible_to<std::size_t>;
{ Traits::find(cp, n, ccr) } -> std::convertible_to<const typename Traits::char_type*>;
{ Traits::move(p, cp, n) } -> std::same_as<typename Traits::char_type*>;
{ Traits::copy(p, cp, n) } -> std::same_as<typename Traits::char_type*>;
{ Traits::assign(p, n, c1) } -> std::same_as<typename Traits::char_type*>;
{ Traits::not_eof(i1) } -> std::same_as<typename Traits::int_type>;
{ Traits::to_char_type(i1) } -> std::same_as<typename Traits::char_type>;
{ Traits::to_int_type(c1) } -> std::same_as<typename Traits::int_type>;
{ Traits::eq_int_type(i1, i2) } -> std::convertible_to<bool>;
{ Traits::eof() } -> std::same_as<typename Traits::int_type>;
}
Definition at line 54 of file concepts.hpp.