#define JOIN_IMPL(A, B) A##B #define JOIN(A, B) JOIN_IMPL(A, B) #define CHECK(FEATURE) \ (JOIN(PREFIX, JOIN(_COMPILER_, FEATURE)) == \ JOIN(EXPECTED_COMPILER_, FEATURE)) #if !CHECK(CXX_DELEGATING_CONSTRUCTORS) # error cxx_delegating_constructors expected availability did not match. #endif #if !CHECK(CXX_VARIADIC_TEMPLATES) # error cxx_variadic_templates expected availability did not match. #endif #if !CHECK(VERSION_MAJOR) # error Compiler major version did not match. #endif #if !CHECK(VERSION_MINOR) # error Compiler minor version did not match. #endif #if !CHECK(VERSION_PATCH) # error Compiler patch version did not match. #endif