2012-06-15 4 views

ответ

27

199711L выступает за год = 1997, Месяц = ​​11 (т.е., ноябрь 1997 года) - дата, когда комитет одобрил стандарт, остальная часть ISO утверждена в начале 1998 года

Для 2003 Стандарт, было достаточно мало изменений, которые комитет (по-видимому) решил оставить эту ценность без изменений.

Для стандарта 2011 года, он должен быть определен как 201103L, (опять же, год = 2011, месяц = ​​03) еще раз означает, что комитет одобрил стандарт, как завершена в марте 2011 года

Для 2014 стандарт должен быть определен как 201402L, интерпретируется так же, как указано выше (февраль 2014 г.).

Для стандарта 2017 года его необходимо определить как 201703L (март 2017 года).

До того, как был утвержден первоначальный стандарт, довольно много компиляторов обычно определяли его на 0 (или просто пустое определение, например #define __cplusplus), чтобы обозначить «несоответствие». Когда его попросили строго соблюдать их, многие определили его на 1.

Я почти забыл упомянуть, но еще один лакомый кусочек о древних компиляторах: несколько самых ранних версий cfront (и, вероятно, некоторые другие, копирующие его) определили c_plusplus вместо __cplusplus. Я не помню, что это определяется каким-либо значимым значением.

+0

2003 был «технический пересмотр», на самом деле не стандарт. Он только что представил материал «TR3», который никогда не был частью стандарта. –

+0

@MichaelJ: [«ISO/IEC JTC1/SC22/WG21 подготовил стандарт ISO/IEC 14882: 2003 на языке программирования C++. Он был опубликован в 2003-10- 16. «] (http://www.open-std.org/jtc1/sc22/WG21/docs/standards). Обратите внимание, что это результат TC (Техническое исправление), а не TR (технический отчет). TR - отдельный документ, а не пересмотр стандарта. –

+0

Я не сказал, что это TR, я сказал, что он представил материал TR3, который он сделал. Документ, опубликованный в 2003 году, andard plus CA. Это был не новый стандарт C++, и стандарт 1998 года никоим образом не был изменен. –

2

Это означает, что он совместим со стандартом 1997 C++ (на самом деле известный как C++ '98, поскольку они слишком долго ратифицировать его ..

Смежные вопросы