C
Size: a a a
C
VS
D
UT
VS
VS
D
D
UT
d
C
D
std::covertible_to
AS
VS
D
using func = std::function;
...
template <std::convertible_to<func> Func>
D
d
D
D
template <typename T1, typename T2>
requires std::is_same_v<T1, T2>
void foo() {}
template <typename T1, typename T2>
requires std::is_same_v<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}
foo(3, 4) // compiler error: call to foo is ambiguous
Е
template <typename T1, typename T2>
requires std::is_same_v<T1, T2>
void foo() {}
template <typename T1, typename T2>
requires std::is_same_v<T1, T2>
&& std::is_trivial_v<T1>
void foo() {}
foo(3, 4) // compiler error: call to foo is ambiguous