mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
babdef27c5
This reverts commit 95d94a6775
.
This implements the deferred concepts instantiation, which should allow
the libstdc++ ranges to properly compile, and for the CRTP to work for
constrained functions.
Since the last attempt, this has fixed the issues from @wlei and
@mordante.
Differential Revision: https://reviews.llvm.org/D126907
24 lines
414 B
C++
24 lines
414 B
C++
// RUN: %clang_cc1 -std=c++2a -x c++ %s -verify -fsyntax-only -Wno-unused-value
|
|
// expected-no-diagnostics
|
|
|
|
namespace GithubBug44178 {
|
|
template <typename D>
|
|
struct CRTP {
|
|
void call_foo()
|
|
requires requires(D &v) { v.foo(); }
|
|
{
|
|
static_cast<D *>(this)->foo();
|
|
}
|
|
};
|
|
|
|
struct Test : public CRTP<Test> {
|
|
void foo() {}
|
|
};
|
|
|
|
int main() {
|
|
Test t;
|
|
t.call_foo();
|
|
return 0;
|
|
}
|
|
} // namespace GithubBug44178
|