#ifndef GEAR_TESTING__GEAR_TESTING_H_ #define GEAR_TESTING__GEAR_TESTING_H_ // Under the Microsoft compilers, macros named min and max exist conflicting with our // templated min and max algorithm and giving us a very weird error message. The fix is just to define // NOMINMAX preventing those macro to be defined. #if defined(_XBOX_VER) || defined(WIN32) || defined(_WIN64) || defined(WIN64) || defined(_DURANGO) || defined(_XBOX_ONE) # if !defined( NOMINMAX ) # define NOMINMAX # endif #endif #include // MS Compilers have a buggy version of tuple // Specifically, the MS version of std::make_tuple takes parameters by value (temporary copy) instead of by reference. // This is very bad for types that greater-than-default alignment requirements (eg. SIMD matrices), as it forces a copy to be created on the stack, with no guarantee of correct alignment #if G4_PLATFORM_MS && !defined( GTEST_USE_OWN_TR1_TUPLE ) # if (_MSC_VER < 1700) // GTest tuple conflicts with some VC11 headers (specifically, ) # define GTEST_USE_OWN_TR1_TUPLE 1 # else # define GTEST_USE_OWN_TR1_TUPLE 0 # endif #endif #include // Must be included before all containers' header files because of G4_TEST_EAL_ID. #include #include #include #include #include #endif