为什么我们需要 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 重载布尔运算符,如 !
和 &&
也符合条件。
既然我们在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 重载布尔运算符,如 !
和 &&
也符合条件。