У меня такое ощущение, что это глупый вопрос, и я думаю, что ответом является простое "Нет", хотя я понятия не имею, как быть уверенным в этом, кроме как попросить вашей помощи ...
Влияет ли -Werror
на правильность шаблона (не уверен, что является правильным термином, см. Пример ниже) и / или SFINAE?
Рассмотрим этот простой надуманный пример:
template <typename T>
void foo() {
int a;
}
int main() {
//int a; // error: unused variable 'a' [-Werror=unused-variable]
}
Раскомментирование строки в main
приводит к ошибке при компиляции с -Werror
.Я знаю, что компилятор должен генерировать ошибку для шаблонов, которые ошибочны для любого параметра шаблона, даже если он не создан.Это не тот случай, здесь.Я увижу только ошибку (которая, конечно, фактически только предупреждение) здесь, когда я создаю экземпляр шаблона.
Почему я задаю этот вопрос: я привык компилировать с -Werror
всегда, поэтому мое восприятие того, что является предупреждением и ошибкой, в некоторых отношениях немного размыто.Теперь для шаблонов и особенно для SFINAE это имеет большое значение, если что-то является просто предупреждением или действительно ошибкой.