【发布时间】:2021-06-11 11:40:33
【问题描述】:
考虑以下简单的concept:
template <typename T>
concept C = requires(T a) { a.f(); };
如果我们将 抽象类 类型作为 requires 表达式 的参数会发生什么?
struct B { virtual void f() = 0; };
static_assert(C<B>);
gcc-trunk 和 msvc-trunk 通过断言,但是,clang-trunk、gcc-10.2 和 msvc v19.24 reject 断言。
标准是怎么说的?
【问题讨论】:
标签: c++ language-lawyer abstract-class c++20 c++-concepts