gpt4 book ai didi

c++ - std::is_unsigned::value 定义是否明确?

转载 作者:IT老高 更新时间:2023-10-28 13:23:34 25 4
gpt4 key购买 nike

我想知道是否

std::is_unsigned<bool>::value

是否按照标准定义好?

我问这个问题是因为 typename std::make_unsigned<bool>::type没有很好的定义。

最佳答案

bool 没有签名的概念.来自 [basic.fundamental]/6:

Values of type bool are either true of false. [Note: There are no signed, unsigned, short, or long bool types or values. — end note] Values of type bool participate in integral promotions (4.5).

相比之下,有符号整数类型(第 2 段)和 无符号整数类型(第 3 段)显式调用了有符号性。

现在为 is_signedis_unsigned特征。首先,特征总是定义明确的,但只对算术类型感兴趣。 bool是算术类型,is_signed<T>::value被定义(见表 49)为 T(-1) < T(0) .通过使用 boolean 转换和标准算术转换的规则,我们看到这是 false对于 T = bool (因为 bool(-1)true ,它转换为 1 )。同样,is_unsigned<T>::value定义为 T(0) < T(-1) ,即 true对于 T = bool .

关于c++ - std::is_unsigned<bool>::value 定义是否明确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34612344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com