D
Size: a a a
D
D
Е
D
template <typename T1, typename T2>
requires std::same_as<T1, T2>
void foo() {}
template <typename T1, typename T2>
requires std::same_as<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}
foo(3, 4) // ok, calling more specific foo
Е
template <typename T1, typename T2>
requires std::same_as<T1, T2>
void foo() {}
template <typename T1, typename T2>
requires std::same_as<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}
foo(3, 4) // ok, calling more specific foo
D
D
requires
ничего не знает об условии справа в первом случае, потому что это тайп трейты, то есть для него обычные булыЕ
requires
ничего не знает об условии справа в первом случае, потому что это тайп трейты, то есть для него обычные булыD
TS
basic_string<MyClass>
Е
d
D
D
DB
D
DB
D
D
DB