std::numeric_limits<volatile int>::is_integer
评估为“假”。
但为什么?volatile int 不还是整数类型吗?我想知道这其中是否有某种深意。
UPD:编译器是来自 Keil 4.72 的 armcc
std::numeric_limits<volatile int>::is_integer
评估为“假”。
但为什么?volatile int 不还是整数类型吗?我想知道这其中是否有某种深意。
UPD:编译器是来自 Keil 4.72 的 armcc
您(或者,可能是您的编译器)在这里是错误的,因为它应该是true。
从numeric_limits页面:
此外,每个算术类型的每个 cv 限定版本都存在一个特化,与非限定特化相同,例如 std::numeric_limits< const int >、std::numeric_limits< volatile int > 和 std::numeric_limits< const volatile int > 被提供并且等价于 std::numeric_limits< int >。
标准专业:
...
诠释真
...
好吧,它不评估为false
,它评估为true
:
#include <iostream>
#include <limits>
int main() {
std::cout << std::boolalpha << std::numeric_limits<volatile int>::is_integer << std::endl;
return 0;
}