Как я могу заставить vc ++ и g ++ вести себя одинаково в отношении имени типа для зависимых квалифицированных типов?

Есть ли переключатель, который я могу поставить для cl.exe , который включит предупреждение или ошибку, когда typename ] отсутствует в квалифицированном зависимом типе?

Я работаю в среде, где разработчики обычно работают на одной платформе, либо Windows, либо Linux, и в конечном итоге код создается на обеих платформах каждую ночь. Мы' Мы столкнулись с проблемой, когда люди забывали использовать typename для квалифицированных зависимых типов в Windows, где Visual C ++ 2008 автоматически вставляет отсутствующее typename , если это возможно. Когда они проверяют код таким образом, сборка в Linux прерывается, где g ++ требует типовое имя . Было бы желательно настроить Makefile так, чтобы можно было ожидать того же поведения typename в Windows и Linux, чтобы снизить вероятность нарушения сборки. Я предпочитаю поведение g ++ , но все, что помогло бы двум платформам вести себя одинаково, было бы очень полезно.

См. Также Почему мне нужно использовать typedef typename в g ++, но не VS?

6
задан Community 23 May 2017 в 11:47
поделиться