1
是否允许require表达式“捕获”封闭范围的变量?
在下面的示例中,函数自变量用于测试require表达式是否可以正确使用它们。require表达式不带参数。它直接使用函数作用域中的变量: #include <cstddef> #include <vector> template<typename T> void Resize(T &v, std::size_t const n) { if constexpr (requires { v.resize(n); }) v.resize(n); } template<typename T> void Eziser(T &v, std::size_t const n) { if constexpr (requires { v.eziser(n); }) v.eziser(n); } int main() { std::vector<int> v; Resize(v, 10u); Eziser(v, 10u); } 上面的代码使用Clang概念分支进行编译。但是,GCC10仅接受对的呼叫Resize。GCC9 …
10
c++
c++20
c++-concepts