相关疑难解决方法(0)

为什么我们要求要求?

C++ 20概念的一个角落是,在某些情况下你必须编写requires requires.例如,[expr.prim.req]/3中的这个例子:

需要表达也可以在使用需要子句([温度])作为写在模板参数特设约束,如下面的一个的一种方法:

template<typename T>
  requires requires (T x) { x + x; }
    T add(T a, T b) { return a + b; }
Run Code Online (Sandbox Code Playgroud)

第一个需要引入requires子句,第二个需要引入requires-expression.

需要第二个requires关键字的技术原因是什么?为什么我们不能只允许写作:

template<typename T>
  requires (T x) { x + x; }
    T add(T a, T b) { return a + b; }
Run Code Online (Sandbox Code Playgroud)

(注意:请不要回答那个语法requires吧)

c++ c++-concepts c++20

155
推荐指数
4
解决办法
1万
查看次数

标签 统计

c++ ×1

c++-concepts ×1

c++20 ×1