繁体   English   中英

为什么对于volatile类型,std :: numeric_limits :: is_integer为false?

[英]Why std::numeric_limits::is_integer is false for volatile types?

std::numeric_limits<volatile int>::is_integer

评估为“假”。

但为什么? 不是volatile int仍然是整数类型? 我想知道这里是否有某种深刻的含义。

UPD:编译器是来自Keil 4.72的armcc

你是(或者,可能是你的编译器)错了,因为它应该是真的

numeric_limits页面:

此外,每个算术类型的每个cv限定版本都存在特化,与非限定特化相同,例如std :: numeric_limits <const int>,std :: numeric_limits <volatile int>和std :: numeric_limits <const volatile int提供了>并且等同于std :: numeric_limits <int>。

numeric_limits / is_integer页面:

标准专业:

...

int true

...

好吧,它没有评估为false ,它的计算结果为true

#include <iostream>
#include <limits>

int main() {
    std::cout << std::boolalpha << std::numeric_limits<volatile int>::is_integer << std::endl;
    return 0;
}

https://ideone.com/y3ne6Y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM