When attempting to use the workaround for the limits(1120): error : identifier "__builtin_nanf" is undefined bug, I'm greeted by the following errors:
0:25.36 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1120): error #3377: constexpr function return is non-constant 0:25.36 return (__builtin_nanf("0")); 0:25.36 ^ 0:25.36 0:25.36 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1125): error #3377: constexpr function return is non-constant 0:25.36 return (__builtin_nansf("1")); 0:25.36 ^ 0:25.36 0:25.36 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1183): error #3377: constexpr function return is non-constant 0:25.36 return (__builtin_nan("0")); 0:25.36 ^ 0:25.36 0:25.36 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1188): error #3377: constexpr function return is non-constant 0:25.36 return (__builtin_nans("1"));
In the comments of the article someone mentioned using -D__builtin_nan(p)=NAN (etc) which works around for a few of the macros but not all of them:
__builtin_huge_val()=HUGE_VAL __builtin_huge_valf()=HUGE_VALF __builtin_nan(p)=NAN __builtin_nanf(p)=NANF __builtin_nans(p)=NAN __builtin_nansf(p)=NANF
Returns:
0:24.99 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1120): error: identifier "NANF" is undefined 0:24.99 return (__builtin_nanf("0")); 0:24.99 ^ 0:24.99 0:24.99 C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\limits(1125): error: identifier "NANF" is undefined 0:25.00 return (__builtin_nansf("1")); 0:25.00 ^
What's the correct way to work around this issue?