从C++20开始,约束auto
通过以下方式引入:
Concept auto identifier = init
这意味着,例如:
std::integral auto x = 10;
有效。
此外,对于new-expressions,concept允许与auto
配对:
new Concept auto { expr };
// or:
new Concept auto ( expr );
auto{expr}
或auto(expr)
在C++23中被引入,大致相当于:
auto __temp { expr };
return __temp;
这是否意味着Concept auto { expr }
或Concept auto ( expr )
也有效?
这个简单的用例可以用来尝试创建一个衰减副本,同时检查由约束检查的操作。
1条答案
按热度按时间k4emjkb11#
[dcl.spec.auto.general]/5只允许
auto
作为函数类型转换的 simple-type-specifier,即使受约束的 * 占位符-type-specifier* 在语法上可以是 simple-type-specifier。