I am using Unreal Engine 4 with some external .dll libraries. I have encountered a problem where "PI" is defined in unreal engine core code as "3.141592..." like this:
#define PI (3.1415926535897932f)
This is a problem with macros, and is the reason why modern C++ programmers try to avoid them as much as possible.
One solution is for your code to not include the Unreal header file directly, but make up something like:
// my_unreal.h #include "unreal.h" #undef PI
And then in the rest of your code only do
#include "my_unreal.h", and not the actual unreal header. So that the macro is gone by the time any other code happens.