plugify 1.2.8
Loading...
Searching...
No Matches
plg::is_char_traits Concept Reference

Concept definition

template<typename Traits>
concept plg::is_char_traits = requires {
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>;
}

Detailed Description

Definition at line 54 of file concepts.hpp.