概念(C++20)可以用作布尔值吗?

2022-05-17 00:00:00 c++ c++20 c++-concepts

using T = decltype(std::same_as<int, double>) 我已经在VS2019上试过了。结果是T = bool

这是由标准定义的,还是仅由特定编译器定义的属性? 我还没有找到关于这件事的任何官方消息。 https://en.cppreference.com/w/cpp/concepts


解决方案

AConcept-idLikestd::same_as<int, double>像表达式一样求值。它会生成bool类型的pr值。

[临时名称]

8概念ID是简单模板ID,其中模板名称为 一个概念名称。Concept-id是bool类型的pr值,而不是 命名模板专业化认证。属性,则概念id的计算结果为真 满足概念的规范化约束表达式 ([temp.constr.conr])通过指定的模板参数和FALSE 否则。

因此decltype报告正确。在表达式中,它是bool

相关文章