Dr.Gigabit,

> 1) Каково сейчас положение дел со стандартом С++ (какие последние версии, каков механизм принятия стандарта, когда ждать очередного релиза и т.д). Доступна ли полная версия стандарта для общественного пользования? (слышал, что нет)


Стандарт принят в 1998 году, в 2003 к нему вышли исправления, язык не изменяющие, а только уточняющие текст стандарта. После этого началась работа по составлению следующей версии стандарта, в котором будут содержаться изменения языка и стандартной библиотеки. Следующую версию можно ожидать около 2008 года, но это очень приблизительно, т.к. все зависит от того насколько разойдется комитет с внесением изменений: больше изменений — больше работы — позже выйдет следующий стандарт.

Механизм принятия стандарта соответствует процедурам, определяемым ISO. Хорошее представление о механике работы комитета стандартизации С++ можно получить, читая группу новостей news://comp.std.c++ и отслеживая материалы комитета. Также нелишним в этом отношении может оказаться чтение книги Страуструпа "Дизайн и эволюция C++".

Вкратце. В состав международного комитета стандартизации C++ (собственно, рабочая группа ISO) входит по представителю от каждой из стран, пожелавших принимать участие в процессе стандартизации. Представителем США является рабочая группа ANSI, в которую входят представители большинства производителей компиляторов C++, равно как и крупных "игроков", заинтересованных в развитии языка; есть и люди, ни с какой компанией не ассоциированные, и представляющие самих себя. Исторически заседания рабочих групп C++ ISO и ANSI проводятся совместно.

Распространением стандартов занимается ISO, которая бесплатно стандарты не отдает, и у них стандарт стоит дорого (что-то около $280). Не вдаваясь в детали, можно сказать, что тот же стандарт, но "ратифицированный" INCITS, и отличающийся только титульной страницей, можно купить за $18 с сайта ANSI. Только внимательней при покупке: там же есть и дорогая оригинальная версия ISO.

Бесплатно могу порекомендовать скачать ранний черновик следующей версии: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1638.pdf — для академических целей более чем подойдет, так как от "релиза" он если и отличается, то очень незначительно.

> 2) Может ли кто посоветовать компилятор наиболее полно соотсветствующий стандарту? Эффективность его как компилятора(имею в виду оптимизацию и т.п) мало интерисует, главное — соответствие стандарту и реализация под Win (последнее не обязательно, но желательно)


Наиболее полно соответствующим стандарту (включая экспорт шаблонов) считается Comeau, основанный на EDG front-end. Для Windows данный компилятор стоит $50, но иногда по случаю выхода нового релиза можно купить чуть дешевле.

Однако, если смотреть на вещи более прагматично, то для академических целей я бы порекомендовал VC++ 2003 Toolkit (бесплатная версия VC++ 7.1 aka .Net 2003) или свежую версию GCC. Первый работает побыстрее и выдает более эффективный код, плюс имеет большую поддержку на платформе Windows, второй — в некоторых аспектах получше соответствует стандарту, плюс очень хорошо переносим между платформами (для Windows рекомендую версию от MinGW).

И VC++, и GCC с точки зрения обучения соответствуют стандарту в более чем достаточной степени. Из "больших" возможностей, включенных в стандарт, за VC++ можно отметить отсутствие поддержки двухфазного поиска имен, что желательно, но не помешает продвигаться в изучении языка, и спецификации исключений, что некоторые полагают не очень удачной возможностью, введенной в язык. Обе из этих вещей в GCC реализованы. Экспорт шаблонов ни VC++, ни GCC не поддерживают, но также как и спецификации исключений, эта функциональность на пути изучения языка встретится очень не скоро, да и практическая польза от нее тоже под вопросом.
Posted via RSDN NNTP Server 1.9 delta
Автор: Павел Кузнецов    Оценить