Linux: Problem when using it with the Eigen library, isfinite is not declared


I use PhysX (3.3.2) on Linux (Fedora 20) with the Eigen library, and one header (so far) gives me errors:

/usr/local/include/physx/foundation/unix/PxUnixIntrinsics.h:92:20: error: ‘isfinite’ was not declared in this scope
   return isfinite(a);

There are two candidate functions, one is from cmath, and one if from Eigen::numext::isfinite.

I see that it includes math.h. Wouldn’t it be better to use cmath? But that doesn’t solve the error yet. I just put it in the standard namespace, and this error is gone.

So replacing

return isfinite(a);


return std::isfinite(a);

in lines 92 and 98 solved the problem.


Thanks for the information, I’ll make sure to pass it along to those responsible for the Linux port.