We try to compile this testcase:
#include <math.h> int main() { float f1 = HUGE_VALF; decltype(HUGE_VALF) *f2 = &f1; }
And get the following result
>icl samplelimits.cc Intel(R) C++ Intel(R) 64 Compiler for applications running on IA-32, Version 16. 0 Build 20151021 Copyright (C) 1985-2015 Intel Corporation. All rights reserved. samplelimits.cc samplelimits.cc(4): warning #265: floating-point operation result is out of rang e float f1 = HUGE_VALF; ^ Microsoft (R) Incremental Linker Version 14.00.23506.0 Copyright (C) Microsoft Corporation. All rights reserved. -out:samplelimits.exe samplelimits.obj>
Judging from the error-message and the succeeding "decltype", HUGE_VALF has type float, but still, intel reports that "floating-point operand result is out of range". Same happens for NAN (with which it complains *twice* for the same line of code).
We use MSVC2015 Update 1 and the intel compiler version as specified in the output above.