[PATCH] D126907: Deferred Concept Instantiation Implementation Take 2
Daniel Bertalan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Oct 8 02:29:02 PDT 2022
BertalanD added a comment.
Hi @erichkeane,
This change broke compilation of this program (https://godbolt.org/z/KrWGvcf8h; reduced from https://github.com/SerenityOS/ladybird):
template<typename T, typename U>
constexpr bool IsSame = false;
template<typename T>
constexpr bool IsSame<T, T> = true;
template<typename T>
struct Foo {
template<typename U>
Foo(U&&) requires (!IsSame<U, Foo>);
};
template<>
struct Foo<void> : Foo<int> {
using Foo<int>::Foo;
};
Foo<void> test() { return 0; }
<source>:18:27: error: invalid reference to function 'Foo': constraints not satisfied
Foo<void> test() { return 0; }
^
<source>:10:24: note: because substituted constraint expression is ill-formed: value of type '<dependent type>' is not contextually convertible to 'bool'
Foo(U&&) requires (!IsSame<U, Foo>);
^
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D126907/new/
https://reviews.llvm.org/D126907
More information about the cfe-commits
mailing list