Является ли компилятор аспекта CINA (03) SFINAE независимым? - PullRequest
1 голос
/ 09 ноября 2011

У меня есть файл header , функциональность которого во многом зависит от success SFINAE.В настоящее время g++ 4.6 работает как положено.Должен ли я предполагать, что мой код будет работать одинаково одинаково для всех компиляторов (компиляторов C ++ 03)?

Я нахожу это проблемой, потому что если что-то отличается не приведет к ошибке компилятора и тихо изменит поток кода.

Ответы [ 2 ]

4 голосов
/ 09 ноября 2011

Да, вы можете рассчитывать на то, что SFINAE будет существовать и функционировать должным образом.

Если у вас не работает компилятор, он окончательно не соответствует требованиям, и все ставки в любом случае отключены.

0 голосов
/ 09 ноября 2011

Поскольку это зависит от успеха SFINAE, вы должны использовать static_assert (или BOOST_STATIC_ASSERT), чтобы убедиться, что SFINAE успешно пройден.

Я не знаю, будет ли работать ваш код все компиляторы, но статическое утверждение не выполнит компиляцию, если конкретному компилятору не удается получить ожидаемый вывод для конкретного SFINAE.

...