3
std::numeric_limits<volatile int>::is_integer

'false' と評価されます。

しかし、なぜ?volatile int はまだ整数型ではありませんか? これに何か深い意味があるのか​​知りたいです。

UPD: コンパイラは Keil 4.72 の armcc です

4

2 に答える 2

7

trueである必要があるため、ここで間違っています (または、コンパイラである可能性があります) 。

numeric_limitsページから:

さらに、各算術型のすべての cv 修飾されたバージョンに対して、修飾されていない特殊化と同一の特殊化が存在します。 > が提供され、std::numeric_limits< int > と同等です。

また、numeric_limits/is_integerページから:

標準的な専門分野:

...

真の整数

...

于 2016-12-27T11:46:26.893 に答える
1

まあ、それはに評価されません、それは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

于 2016-12-27T11:45:21.643 に答える