std::numeric_limits<volatile int>::is_integer
评估为&#39; false&#39;。
但为什么呢?不是一个整数类型的volatile int吗?我想知道这里是否有某种深刻的含义。
UPD:编译器是来自Keil 4.72的armcc
答案 0 :(得分:7)
你是(或者,可能是你的编译器)错了,因为它应该是 true 。
来自numeric_limits页面:
此外,每个cv限定版本都存在专门化 每种算术类型,与不合格的专业化相同, 例如的std :: numeric_limits&LT; const int&gt;,std :: numeric_limits&lt;挥发物 int&gt;和std :: numeric_limits&lt; const volatile int&gt;是提供和 相当于std :: numeric_limits&lt; int&gt;。
来自numeric_limits/is_integer页面:
标准专业化:
...
int true
...
答案 1 :(得分:1)
好吧,它不评估为false
,评估为true
:
#include <iostream>
#include <limits>
int main() {
std::cout << std::boolalpha << std::numeric_limits<volatile int>::is_integer << std::endl;
return 0;
}