为什么我们需要 std::boolean 以及它有什么用?

2 c++ boolean std c++20

既然我们已经有了 true 和 false 作为 C++ 中的类型bool,为什么我们需要 std::boolean 类,它有什么用呢?有用的链接也值得赞赏。

n. *_* m. 6

std::boolean曾经是C++20标准草案的一部分(例如可以在N4835中找到),但在实际的C++20标准中它被一个仅解释的概念所取代boolean-testable。由于采用了P1964R2 ,这一变化发生在 2020 年 2 月左右。

在这两种化身中,它都是一个概念,而不是一种类型。也就是说,一个模板说明其参数类型是否可以用作布尔值。bool显然可以这样使用,但不仅限于:整型、指针类型以及定义转换和bool/或重载布尔运算符(如!和)的任何类&&