#if !defined(__cpp_concepts) || __cpp_concepts == 0 #error "Sorry, Charlie. No concepts" #else #if __cpp_concepts <= 201507L #define concept concept bool #endif template concept True = true; template constexpr bool test(T) { return false; } template requires True constexpr bool test(T) { return true; } int main() { static_assert(::test(42), ""); } #endif