2013-06-27 3 views
0

У меня есть требование использовать GCC 4.5.x для большого проекта. Я пытаюсь интерпретировать следующее заявление this page:GCC 4.5 C++ 0x прямое соответствие C++ 11

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

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

+1

Я работаю с gcc 4.4 до 4.8 в некоторых проектах, и у меня лично не возникало проблем с C++ 11. Не можете ли вы скомпилировать его с 4.8, а просто для двойной проверки? Для практически всего, на что вы можете положиться, «если он компилируется с 4.5, он компилируется с 4.x» с x> = 5. – stefan

ответ

1

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

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

Других слов:

делает все (возможно, немного) C++ 0x особенности в 4.5 имеет тот же синтаксис и семантику в качестве окончательного стандарта C++ 11?

No.

Go с "некоторыми, возможно все" и полагаться на ни.

+0

В отрывке говорится, что нет гарантии обратной совместимости с промежуточными функциями. Меня интересует обратное, то есть, реализуются ли функции, реализованные в промежуточный период, в соответствии с окончательным стандартом. – ThomasMcLeod

+0

@ThomasMcLeod: Перспективная совместимость от 4.5 до 4.8 такая же, как и обратная совместимость от 4.8 до 4.5. –

+0

Не совсем так, потому что были версии технического обслуживания 4.5, которые могли бы привести несовместимые функции в соответствие с окончательным стандартом. – ThomasMcLeod