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

Why do we need std::boolean and what is the use of it?

既然我们在C++中的类型bool已经有了true和false,为什么我们还需要class std::boolean,它有什么用呢?有用的链接也很受欢迎。

std::boolean 曾经是 C++20 草案标准的一部分(例如,它可以在 N4835), but in the actual C++20 standard it is replaced by an exposition-only concept boolean-testable. The change happened around February 2020 as a result of adoption of P1964R2 .

中找到

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