Какой стандарт придерживается VS2005, VS2008? - PullRequest
7 голосов
/ 02 июня 2011

Они оба следуют C ++ 03, выпущенному в 2003 году?

Ответы [ 3 ]

7 голосов
/ 02 июня 2011

Они оба нацелены на C ++ 03, да.Но у них также есть области, где они не соответствуют стандарту.(Так же как и GCC, прежде чем любой фанат с обеих сторон начнет пениться во рту).

Но имейте в виду, что C ++ 03 - это очень маленький релиз исправления ошибок, приглушающий несколько «здравого смысла».«Вещи, которые разумные компиляторы сделали бы в любом случае (например, в C ++ 98, строго говоря, можно было иметь векторы, которые не выделяются непрерывно. C ++ 03 запрещает это, но каждый вменяемый поставщик компилятора имел быиспользовали смежные векторы в любом случае , потому что для этого и предназначены векторы)

GCC даже не имеет стандартной настройки C ++ 03.Вы указываете это на C ++ 98 (с std=c++98), и вместо этого он нацелен на C ++ 03. Я не знаю о компиляторе, который на самом деле делает различие между ними, потому что изменений так мало, итак очевидно.

1 голос
/ 02 июня 2011

Да, VS2005 и VS2008 оба следуют C++03.Они поддерживают некоторые функции C++0x, но они не полностью совместимы с C++0x, и, скорее всего, на данный момент ни один из компиляторов не выпущен, поскольку окончательная спецификация еще не опубликована.GCC подтверждает соответствие C++0x, чем любой другой компилятор на данный момент.

C ++ 0x еще не выпущен. Окончательная спецификация, как ожидается, будет опубликована в середине 2011 года.1011 * Вы должны увидеть это .

0 голосов
/ 02 июня 2011

Да, они оба следуют C ++ 03.VS2010 имеет некоторые особенности C ++ 0x.На данный момент наиболее полную поддержку функций предлагает GCC .

...