Текущий Стандарт С++ и перспективы его развития
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.167] |
|
|
| Страницы: (81) « Первая ... 40 41 [42] 43 44 ... 80 81 ( Перейти к последнему сообщению ) |
Текущий Стандарт С++ и перспективы его развития
|
Сообщ.
#616
,
|
|
|
|
Концепты оказались очень серьёзной для реализации фичей. Их не удалили, а отложили до более спокойных времён.
|
|
Сообщ.
#617
,
|
|
|
|
Получается, что и сказать нечего, а так радовались.
Ладно, буду и дальше пользоваться старым С++. |
|
Сообщ.
#618
,
|
|
|
|
Цитата prografix @ 42я страница. Флуда почти нет, уверен и этот скоро снесут. Открывай с первой и читай. Мало -- открывай последний доступный черновик, читай там. Получается, что и сказать нечего, а так радовались. Ладно, буду и дальше пользоваться старым С++. |
|
Сообщ.
#619
,
|
|
|
|
печально то, что concept gcc вроде как забросили, а др подвижек в этом направлении не видно
|
|
Сообщ.
#620
,
|
|
|
|
А всё-таки, что ни говори, а новые фишки стандарта упрощают код и разработку.
|
|
Сообщ.
#621
,
|
|
|
|
Цитата Flex Ferrum @ А всё-таки, что ни говори как-то не уверенно звучит |
|
Сообщ.
#622
,
|
|
|
|
Цитата niXman @ как-то не уверенно звучит ![]() Ну, в интернете (например, на том же хабре) можно встретить много критики в адрес нового стандарта. Но, как говориться, критикуй, не критикуй, а код выглядит таки проще. |
|
Сообщ.
#623
,
|
|
|
|
Цитата Flex Ferrum @ много критики в адрес нового стандарта. а критики в адрес прошлого стандарта меньше? ![]() или вообще критики с++ |
|
Сообщ.
#624
,
|
|
|
|
Цитата niXman @ а критики в адрес прошлого стандарта меньше? ![]() или вообще критики с++ ![]() |
|
Сообщ.
#625
,
|
|
|
|
Цитата Qraizer @ отложили до более спокойных времён. поясни. Добавлено до каких таких спокойных? и что специфичного в концептах? |
|
Сообщ.
#626
,
|
|
|
|
Для примера.
Было: ![]() ![]() xstl::Collection<IUnitRace*> races = LocalGameServer::GetGameStartingOptions()->Races(); m_StoredWizards = *LocalGameServer::GetGameStartingOptions()->StoredWizards; xstl::Collection<IUnitRace*>::const_iterator p = races.cbegin(), e = races.cend(); for (; p != e; ++ p) ui.m_StartRace->addItem(QString::fromStdString((*p)->RaceName())); Стало: ![]() ![]() auto const& races = m_StartingOptions->Races(); m_StoredWizards = *LocalGameServer::GetGameStartingOptions()->StoredWizards; BOOST_AUTO_FOREACH(race, races) ui.m_StartRace->addItem(QString::fromStdString(race->RaceName())); BOOST_AUTO_FOREACH - это от "хорошей" жизни на VS 2010. В gcc это был бы range-for-loop. |
|
Сообщ.
#627
,
|
|
|
|
Flex Ferrum, что правда, что микрософт не собирается реализовывать стандарт полностью? или они только отложили реализацию?
|
|
Сообщ.
#628
,
|
|
|
|
Цитата niXman @ Flex Ferrum, что правда, что микрософт не собирается реализовывать стандарт полностью? или они только отложили реализацию? Ну, я так понимаю, работу над компилем из VS 2010 (основным) они закончили году в 2009-ом. Дальше был только багфикс. По этому из нового стандарта туда попало немного... Ждём |
|
Сообщ.
#629
,
|
|
|
|
Цитата Flex Ferrum @ Ждём 2012-ый. все таки надежда есть.. |
|
Сообщ.
#630
,
|
|
|
|
niXman, концепты были призваны в явном виде описывать контракты. Очень восстребовано при статическом полиморфизме и вообще при жёстком обобщённом программировании, где шаблон на шаблоне и шаблоном погоняет. Сейчас контракты описываются либо в документации, либо никак. Концепты могли, во-первых, рассказать программисту об этих контрактах без необходимости лазать в мануалы, и во-вторых, предоставить компилятору информацию об этих контрактах. Последнее наиболее значимо, ибо он в результате становился способным выдавать диагностику на ранних стадиях второго этапа компиляции шаблона в точке инстанцирования. Если сейчас не редкость увидеть километровую диагностику со ссылкой куда-то вглубь приватных частей реализации шаблона, то при концептах компилер просто заранее бы, ещё до инстанцирования, их проверил и сразу б выдал ошибку со ссылкой на нарушаемый аргументами контракт.
Однако контракты могут разными. Попытки даже описать концепты для всякоразных мыслимых видов контрактов и реализовать их хоть в каком-то виде показали, что если иметь возможность любые мыслимые контракты описывать концептами, то они будут требовать от реализаций по сути поддержки парадигмы декларативного программирования. Это иначе чем революцией назвать сложно. Поддержка функциональной парадигмы семечки по сравнению с концептами. В общем, комитет решил удалить концепты из текущего рассматриваемого драфта и вернуться к ним позже. Иначе C++1x рисковал либо выйти сильно после конца света, либо с концептами только на бумаге, как по сути случилось с экспортом шаблонов. |