Как я могу заставить vc ++ и g ++ вести себя одинаково относительно typename для зависимых квалифицированных типов? - PullRequest
6 голосов
/ 30 ноября 2010

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

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

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

Ответы [ 2 ]

5 голосов
/ 30 ноября 2010

Мое рабочее место решило все проблемы такого рода, внедрив сервер непрерывной интеграции.В нашем случае мы были вполне удовлетворены TeamCity .Он очень настраиваемый, и с некоторыми сценариями bash я уверен, что вы можете красиво представлять ошибки gcc в TeamCity.Я настроил наш сервер так, чтобы я также получал прекрасные сообщения об ошибках Doxygen, и мы сократили количество ошибок с начальных 11000 до 0 за пару месяцев.

Удачи!

0 голосов
/ 30 ноября 2010

Нет такой проверки в Visual Studio 2005 или 2008. Причина этого заключается в том, что внутренние компоненты компилятора (способ обработки шаблонов) различаются между VS и GCC, и VS выполняет намного меньше обработки до создания экземпляров шаблонов.Кажется, почти все объясняется в вопросе, который вы связали.

Я думаю, вы можете считать это ошибкой Visual Studio.

Я не уверен, каково это состояние в VS 2010- Я еще не проверял.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...