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

zjy*_*qs 4 c++ c++-concepts c++20

using T = decltype(std::same_as<int, double>) 我在VS2019上试过这个。事实证明T = bool

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

Sto*_*ica 8

一个concept-id就像std::same_as<int, double>一个表达式一样被评估。它产生类型为 的纯右值bool

[临时名称]

8概念 ID 是简单模板 ID,其中模板名称是概念名称。Concept-id 是 bool 类型的纯右值,并且不命名模板特化。如果指定的模板参数满足概念的规范化约束表达式 ([temp.constr.constr]),则概念 ID 的计算结果为 true,否则为 false。

decltype正确报告也是如此。在表达式中,它是一个bool.