Как определить наличие TS Concepts с помощью GCC 6.1?
На этой странице предлагается предопределить макрос __cpp_experimental_concepts
в реализации, поддерживающей концепцию TS. . Однако следующая тестовая программа компилируется без ошибок на GCC 6.1 с флагом -fconcepts
:
#ifdef __cpp_experimental_concepts
static_assert(false, "Concepts TS found");
#endif
template <typename T>
concept bool Identity = true;
int main() {}
(Я ожидаю, что либо static_assert
сработает, либо ключевое слово concept
останется нераспознанным.)
Кто-нибудь знает какой-либо другой метод условной компиляции кода на основе доступности концепций?
echo | g++ -E -dM -fconcepts -x c++ - | fgrep concepts
- person Jonathan Wakely   schedule 20.07.2016