GCC 4.5 C++0x обеспечивает совместимость с C++11

У меня есть требование использовать GCC 4.5.x в большом проекте. Я пытаюсь интерпретировать следующее утверждение на этой странице:

Важно! Поддержка C++11 в GCC по-прежнему экспериментальна. Некоторые функции были реализованы на основе ранних предложений, и при их обновлении не будет предпринято никаких попыток поддерживать обратную совместимость. чтобы соответствовать окончательному стандарту C++11.

Если я включу функции C++11 в версии 4.5 с помощью -std=c++0x, мне нужно быть уверенным, что код будет корректно компилироваться на полностью совместимом компиляторе (таком как 4.8). Другими словами, все ли (возможно, некоторые) функции C++0x в версии 4.5 имеют тот же синтаксис и семантику, что и окончательный стандарт C++11?


person ThomasMcLeod    schedule 27.06.2013    source источник
comment
Я работаю с gcc от 4.4 до 4.8 в некоторых проектах и ​​лично у меня не было проблем с C++11. Разве вы не можете скомпилировать его с 4.8, просто чтобы перепроверить? Практически для всего, на что вы можете положиться, если оно компилируется с 4.5, оно компилируется с 4.x с x ›= 5.   -  person stefan    schedule 27.06.2013


Ответы (1)


Если я включу функции C++11 в версии 4.5 с помощью -std=c++0x, мне нужно быть уверенным, что код будет корректно компилироваться на полностью совместимом компиляторе (таком как 4.8).

Жесткий; в приведенном вами пассаже ясно сказано, что такой гарантии нет.

Другими словами:

все (возможно, некоторые) функции С++ 0x в версии 4.5 имеют тот же синтаксис и семантику, что и окончательный стандарт С++ 11?

Нет

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

person Lightness Races in Orbit    schedule 27.06.2013
comment
В отрывке говорится, что нет гарантии обратной совместимости с промежуточными функциями. Меня интересует обратное, то есть будут ли функции, реализованные в промежуточный период, соответствовать окончательному стандарту. - person ThomasMcLeod; 27.06.2013
comment
@ThomasMcLeod: прямая совместимость с 4.5 по 4.8 такая же, как и обратная совместимость с 4.8 по 4.5. - person Lightness Races in Orbit; 27.06.2013
comment
Не совсем так, потому что существовали отладочные версии 4.5, которые могли привести несовместимые функции в соответствие с окончательным стандартом. - person ThomasMcLeod; 27.06.2013
comment
Последним отладочным выпуском 4.5 был 4.5.4 от 2 июля 2012 г. - person ThomasMcLeod; 27.06.2013
comment
@ThomasMcLeod: я имею в виду самую последнюю версию 4.5, какой бы она ни была на момент запроса совместимости. Процитированный вами отрывок охватывает все это; просто как тот. Кроме того, отладочные выпуски обычно не выполняют функции, которую вы им приписываете — весь смысл новых минорных выпусков (4.6, 4.7, 4.8) заключается во внедрении значительных изменений, таких как крупномасштабные изменения в API или стандартном реализация библиотеки. - person Lightness Races in Orbit; 27.06.2013