The SafeInt.hpp header defines some preprocessor macros that could cause naming collisions, e.g.: CPLUSPLUS_98, CPLUSPLUS_11, and many others. Those preprocessor macros should have proper prefixes to avoid naming conflicts, e.g. should be renamed like SAFEINT_CPLUSPLUS_11, SAFEINT_CPLUSPLUS14, etc.