Global macros clash with other things
glebm opened this issue · comments
Here, libctru defines some macros that can clash with other things:
libctru/libctru/include/3ds/types.h
Lines 51 to 52 in a4634c0
For example, with the latest version of libfmt, this does not work:
#include <3ds.h>
#include <fmt/core.h>
This is because libfmt uses PACKED
as a template parameter name in one of its functions:
Including things in the opposite order works but really 3ds should not define such macros publicly:
#include <fmt/core.h>
#include <3ds.h>
This can be tricky to work around in a medium size codebase, e.g. diasurgical/devilutionX#6585