21template <
typename F,
typename Ret,
typename...
Args>
25template <
typename T,
template <
typename...>
class S>
27template <
template <
typename...>
class S,
typename...
Args>
35template <
typename T,
template <
typename...>
class S>
44 (
not std::is_move_constructible_v<T>)
and
45 (
not std::is_move_assignable_v<T>);
53 (
not std::is_copy_constructible_v<T>)
and
54 (
not std::is_copy_assignable_v<T>);
78concept package = std::is_trivially_copyable_v<T>;
84template <
typename T,
typename U = T>
89 U& second { p.second };
90 U& right { p.second };
91 explicit pair(
auto&&...
args) : p { std::forward<decltype(args)>(
args)... } {}
93 operator std::pair<T, U>& () {
return p; }
99namespace byte_literals {
105consteval std::byte
operator""_b(
unsigned long long int byte) {
106 if (
byte > 0xff)
throw std::out_of_range{
"std::byte literal exceeds 0xff." };
107 return static_cast<std::byte
>(
byte);