概念(C++20)可以用作布尔值吗?
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
。
相关文章