Does constraint subsumption only apply to concepts?
问题 Consider this example: template <typename T> inline constexpr bool C1 = true; template <typename T> inline constexpr bool C2 = true; template <typename T> requires C1<T> && C2<T> constexpr int foo() { return 0; } template <typename T> requires C1<T> constexpr int foo() { return 1; } constexpr int bar() { return foo<int>(); } Is the call foo<int>() ambiguous, or does the constraint C1<T> && C2<T> subsume C1<T> ? 回答1: Yes. Only concepts can be subsumed. The call to foo<int> is ambiguous because