Рушится ли C ++ 0x под тяжестью новых функций и процесса стандартизации?

StackOverflow https://stackoverflow.com/questions/1204693

  •  05-07-2019
  •  | 
  •  

Вопрос

От ДокторДоббс:

Концепции должны были стать центральной новая функция в C ++ 0x

Даже после сокращения "концепций" следующий стандарт C ++ может быть отложен.К сожалению, C ++ 0x не будет (если вы не учитываете незначительные исправления в C ++ 03).Мы должны дождаться C ++ 1x и надеяться, что "x" будет младшей цифрой.Есть надежда, потому что C ++ 1x теперь является полнофункциональным (за исключением возможности некоторых национальных стандартов органов, фактически настаивающих на некоторой функции, присутствующей в официальном предложении по стандарту)."Все", что осталось - это масштабная работа по разрешению нерешенных технических вопросов и комментариев.

Примерно с 1997 по 2000 год я был на переднем крае MT- и MP-безопасного программирования на C ++.Многое нам приходилось делать самим.Немного шокирует, что с тех пор в стандарте не рассматривался параллелизм в течение 9 лет.

Так в чем же тут проблема?

Это было полезно?

Решение

Страуструп был одним из избирателей, чтобы окончательно удалить Концепции. Я не вижу, как C ++ рушится , а вижу, что комитет C ++ выполняет свою работу. Полуфабрикаты не являются решением для надежного языка, такого как C ++. Взгляд на то, что будет в C ++ 0x, скажет вам противоположное тому, что вы говорите. Наконец, я не против подождать, чтобы получить что-то хорошее навсегда вместо чего-то хорошего на некоторое время :)

Другие советы

Нет.

Я не уверен, что заставляет вас так думать.Статья доктора Доббса не подразумевает, что это так.

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

А процесс стандартизации ИСО требует времени.Это тоже не ново.В статье, которую вы опубликовали, говорится именно об этом - есть работа, которую нужно выполнить, но небо не падает, это довольно простая работа с низким уровнем риска, которую они будут выполнять с этого момента.

Есть пара причин, почему это заняло так много времени:

Очевидно, что они вносят много изменений, и несколько функций оказались больше, чем ожидалось, и их пришлось сократить.Это само собой разумеется и является причиной задержек.

Менее очевидным, но не менее важным фактором является то, что они желанный со времен C ++ 98 прошло много времени.Они хотели дать языку время стабилизироваться и созреть, получить большой опыт использования с текущий языковые особенности и дают компиляторам время наверстать упущенное.Еще несколько лет назад C ++ просто не был готов к обновлению.Крупные коммерческие компиляторы все еще были в беспорядке, и слишком многим людям все еще не нравился современный дизайн C ++.

Вот почему такие вещи, как многопоточность, до сих пор не рассматривались.Этого не было в C ++ 98, и они не хотели вносить изменения слишком скоро после этого.

Я не знаю, на какой год они изначально рассчитывали нацелиться, но сомневаюсь, что это было раньше 2007 года или около того.Так что да, выход нового стандарта был немного отложен, но не потому, что язык "рушится".

Нет, они просто осознают свою ответственность. Есть много людей, затронутых решениями стандартного комитета.

С одной стороны, я благодарен, что они не повторяют фиаско экспорта шаблонов.
С другой стороны, такой же вид «ответственности» мог полностью уничтожить шаблоны, прежде чем они произошли.

Я думаю, что C ++ 0x демонстрирует, что C ++ слишком зрелый язык, чтобы экспериментировать с его функциями. Новые передовые функции уже присутствуют в других языках, где они лучше соответствуют основной философии.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top