c++ 受约束的自动转换是否有效?

r1zhe5dt  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(150)

从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 )也有效?
这个简单的用例可以用来尝试创建一个衰减副本,同时检查由约束检查的操作。

k4emjkb1

k4emjkb11#

[dcl.spec.auto.general]/5只允许auto作为函数类型转换的 simple-type-specifier,即使受约束的 * 占位符-type-specifier* 在语法上可以是 simple-type-specifier

相关问题