Различия между реализациями классов шаблонов в C ++ в Linux и MSVC Win32 - PullRequest
0 голосов
/ 31 марта 2010

Я пытаюсь перенести какой-то старый код Linux для запуска в Windows и сталкиваюсь с целой кучей ошибок компилятора, которые, похоже, происходят из-за значительного использования шаблонных классов. Есть ли какие-либо существенные различия между тем, как шаблоны должны быть реализованы для Linux против MSVC? Если так, может кто-то дать обзор того, что на самом деле отличается? Я нашел много документации, но ничего, что на самом деле не определяет различия.

Ответы [ 2 ]

3 голосов
/ 31 марта 2010

Язык C ++ определяется Стандартом C ++ - он не относится к конкретной операционной системе. Насколько хорошо реализован стандарт, зависит от компилятора, а не от ОС к ОС.

Сказав, что, если это очень старый код, вы, вероятно, обнаружите, что современные компиляторы как в Windows, так и в Linux его не скомпилируют. Это связано с тем, что эти современные компиляторы гораздо строже придерживаются стандарта C ++ и вытаскивают код, который раньше и менее совместимые компиляторы могли бы пропустить.

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

1 голос
/ 31 марта 2010

Это будет зависеть много от версий компиляторов, которые вы используете как в Windows, так и в Linux. Поэтому я думаю, что единственный способ - это исправить ошибки по очереди.

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