[expr.reflect] example 4:
template<typename T> void fn() requires (^^T != ^^int);
template<typename T> void fn() requires (^^T == ^^int);
template<typename T> void fn() requires (sizeof(T) == sizeof(int));
constexpr std::meta::info a = ^^fn<char>; // OK
constexpr std::meta::info b = ^^fn<int>; // error: ambiguous
The validity of these being different only makes sense if sizeof(int) is not one. Replacing int with a type such as char[2] would remove the assumption.
[expr.reflect] example 4:
The validity of these being different only makes sense if
sizeof(int)is not one. Replacingintwith a type such aschar[2]would remove the assumption.