Strange C++ function pointer test
Jonathan Wakely
jwakely.gcc@gmail.com
Thu Dec 31 10:02:00 GMT 2015
On 31 December 2015 at 09:57, Jakub Jelinek wrote:
> On Thu, Dec 31, 2015 at 10:49:18AM +0100, Dominik Vogt wrote:
>> This snippet ist from the Plumhall 2014 xvs test suite:
>>
>> #if CXX03 || CXX11 || CXX14
>> static float (*p1_)(float) = abs;
>> ...
>> checkthat(__LINE__, p1_ != 0);
>> #endif
>>
>> (With the testsuite specific macros doing the obvious). abs() is
>> declared as:
>>
>> int abs(int j)
>
> I bet this depends on what headers are included. Doesn't std::abs
> have various overloads, including float -> float one?
Yes.
> So, is <cmath> included? Is there using namespace std; before this?
That would make it valid, or "using std::abs;". It's also required to
compile if <math.h> is included.
More information about the Gcc
mailing list