The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В стандарте C++11 ожидаются значительные изменения языка C++

22.06.2011 21:42

В статье "The Biggest Changes in C++11" один из членов комитета по стандартизации языка C++ привел практические примеры изменений, ожидаемых в будущем стандарте C++11. Изменения ожидаются значительные, например, Бьерн Страуструп, создатель C++, упомянул в одном из интервью, что C++11 ощущается как новый язык, части которого сочетаются друг с другом лучше. В статье показано как язык C++ может быть улучшен и как эти улучшения могут помочь в написании более качественного кода.

  1. Главная ссылка к новости (http://www.softwarequalityconn...)
  2. OpenNews: Утвержден финальный черновой вариант стандарта C++0X
  3. OpenNews: Принятие стандарта языка C++0x вошло в финальную фазу
  4. OpenNews: Видео с обзором текущего состояния будущего стандарта С++0x
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30960-cpp
Ключевые слова: cpp
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (79) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним123321 (ok), 21:58, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    от макросов избавляться не планируется?

    ...всё также нельзя будет создавать имена переменных с именем "stdout" [и прочими бесчисленными количествами подводных макросов] ? :-D

     
     
  • 2.4, Аноним (-), 22:11, 22/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    int main()
    {
    int stdout = 42;
    std::cout<<stdout<<std::endl;
    }

    Выводит 42, ЧЯДНТ?

     
     
  • 3.9, Аноним123321 (ok), 23:00, 22/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    хм... да....
     
  • 2.14, Аноним (-), 23:10, 22/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > от макросов избавляться не планируется?

    Каким образом и зачем? Для большей части и в C++ есть замена макросам - от enum до перегруженных функций и шаблонов, для остального до сих пор нет лучшего решения, чем препроцессор; скажем, D'шные (забыл как это у них называется, аналог #ifdef _linux_) не работают вообще. Более того, в любом другом языке есть и всегда будут такие же C'шные макросы (ибо пользоваться cpp никто никогда не запретит). Так что нет, не планируется.

     
     
  • 3.42, Аноним (-), 11:50, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И хорошо что не планируется. Ломать - не строить!
     
  • 2.22, Сергей (??), 01:29, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Макросы - очень мощный инструмент. Отказываться от него бредово. И я больше чем уверен, что этого не будет НИКОГДА. Так что не парьтесь и переходите на Яву, если считаете С++ сложным, запутанным и пр.
     
  • 2.30, Vkni (?), 06:07, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > от макросов избавляться не планируется?

    Ни в коем случае. Макросы позволяют очень много полезнейших вещей. К примеру, эмулировать "reflection", писать прекрасные отладочные сообщения, делать многоплатформенные программы и т.д.

     
     
  • 3.43, Аноним (-), 11:51, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    И они это позволяют делать просто и удобно. Еще не хватало - отказываться от них.
     
  • 2.80, Аноним (-), 18:32, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > от макросов избавляться не планируется?

    А как же метапрограммирование? Без макросов особо не напишешь такого.

     

  • 1.2, brother anon (?), 22:04, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    мне кажется из С++ уже пора выкидывать фичи а не добавлять
     
     
  • 2.6, anonymous (??), 22:52, 22/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >мне кажется из С++ уже пора выкидывать фичи а не добавлять

    Ага, только вот адекватной замены так и не видно. До сих пор.

     
     
  • 3.40, brother anon (?), 10:20, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ага, только вот адекватной замены так и не видно. До сих пор.

    Вообще-то возможности компьютеров сильно выросли с момента создания С++.
    Поэтому нет необходимости насиловать себе мозг С++, можно взять любой язык высокого уровня и писать на нём, а какой-нибудь критичный к скорости алгоритм сделать на С. Для с компьютеров с ограниченными возможностями есть опять таки же С, который (в стандарте С99) очень удобен и прост.


     
     
  • 4.71, Аноним (-), 02:28, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще-то возможности компьютеров сильно выросли с момента создания С++

    И? Сложность задач растёт всё равно бысрее, а выкинуть три четверти производительности и большую часть памяти ради неноучек от программирования которые не хотят делать delete? Не будет этого.

     
  • 3.41, Codir (?), 11:45, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Уже сто лет как вышел D. Вылезаем из танка?
     
     
  • 4.44, Аноним (-), 11:51, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Уже сто лет как вышел D. Вылезаем из танка?

    Это который сам с собой не совместим? ;)

     
  • 4.51, Аноним (-), 12:01, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Уже сто лет как вышел D. Вылезаем из танка?

    Вылезли. Посмотрели. Обломались найти хоть один нормальный компилер и хоть одну убедительную программу. Залезли обратно и поехали дальше своей дорогой...

     
  • 2.23, Сергей (??), 01:30, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > мне кажется из С++ уже пора выкидывать фичи а не добавлять

    мне так не кажется

     
  • 2.25, Сергей (??), 01:35, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    не умеете использовать фичи - не пользуйтесь этими фичами
     
     
  • 3.39, brother anon (?), 10:06, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > не умеете использовать фичи - не пользуйтесь этими фичами

    В том-то и дело, что большинство фич C++ это хуже, чем ничего.
    Сначала радостно используешь фичу, потом понимаешь, что без неё всё гораздо проще,
    в следующий раз уже сразу отбрасываешь этот хлам.

    В любом С++ проекте есть список фич языка, которые нельзя использовать.
    Наверное никто не умеет ими пользоваться :-)

     
     
  • 4.46, Аноним (-), 11:53, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Наверное никто не умеет ими пользоваться :-)

    На что Вы хотели? Уровень программистов падает с каждым годом.

     
     
  • 5.52, Аноним (-), 12:06, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > На что Вы хотели? Уровень программистов падает с каждым годом.

    А меня вот бесит что чемпион мира по бегу бегает быстрее чем я. Давайте ему ноги ампутируем?! Тогда я смогу бегать быстрее чемпиона мира по бегу! \m/ \m/

     
     
  • 6.55, brother anon (?), 12:23, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А меня вот бесит что чемпион мира по бегу бегает быстрее чем
    > я. Давайте ему ноги ампутируем?! Тогда я смогу бегать быстрее чемпиона
    > мира по бегу! \m/ \m/

    Что курил? Если тебе так нравятся сравнения жопы с пальцем, насладись моим ответом:
    Мы не хотим бегать в неудобных кроссовках, поэтому выкидываем их из нашей команды :-D

     
     
  • 7.81, Аноним (-), 19:52, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Мы не хотим бегать в неудобных кроссовках, поэтому выкидываем их из нашей команды :-D

    Бегайте босиком, ага. Только это слегка травмоопасно...

     
  • 4.50, Аноним (-), 12:00, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Наверное никто не умеет ими пользоваться :-)

    Хм, а если кто-то не умеет вообще ни одной фичой пользоваться - тогда видимо надо запретить языки программирования вообще? :)

     
     
  • 5.54, brother anon (?), 12:21, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если под "умением использовать" ты понимаешь умение ловко обходить все грабли щедро рассыпанные создателями языка, то это называется "есть кактус", а не "умение использовать".

    Скажи например разработчикам LLVM, что они не умеют использовать исключения в С++, а то понимаешь ламера собрались компиляторы пишут.

     
     
  • 6.59, Вова (?), 17:13, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Если под "умением использовать" ты понимаешь умение ловко обходить все грабли щедро
    > рассыпанные создателями языка, то это называется "есть кактус", а не "умение
    > использовать".
    > Скажи например разработчикам LLVM, что они не умеют использовать исключения в С++,
    > а то понимаешь ламера собрались компиляторы пишут.

    Да, спецификация исключений  - общеизвестное зло.

     
     
  • 7.60, Okruzhor (ok), 17:40, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, спецификация исключений  - общеизвестное зло.

    Что всё-таки плохого в исключениях ? Только возможность нового исключения при обработке перехваченного ? Или что-то ещё ?

     
     
  • 8.61, Вова (?), 18:37, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Речь не об исключениях как приёме программирования, а именно об спецификации иск... текст свёрнут, показать
     
  • 2.26, Аноним (-), 02:21, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вперёд - рассказывайте что бы вы выкинули, и чем бы вы это заменили.
     
     
  • 3.38, brother anon (?), 10:00, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Всё уже придумано, называется D. Andrei Alexandrescu seal of approval.
     
     
  • 4.72, Аноним (-), 02:30, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Всё уже придумано, называется D. Andrei Alexandrescu seal of approval.

    В D нет принципиальных отличий от C++. Только вы об этом не знаете, потому что в глаза его не видели. И никто не видел, потому что мертврoжденный язык никому не нyжен.

     
  • 3.58, dq0s4y71 (??), 14:34, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Объясните, пожалуйста, зачем в языке нужны три способа преобразования типов 1 ... большой текст свёрнут, показать
     
     
  • 4.62, тоже Аноним (ok), 18:44, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Три способа преобразования типов работают по-разному, если применяются не к примитивным типам. "Последнее уродство" позволяет программисту быть однозначно уверенным в том, как именно будет произведено преобразование.

    Два способа вывода - это С и С++, что вас смущает?

    Передача аргумента по ссылке удобна, например, тогда, когда этот аргумент является указателем. С чего она вам помешала, если вы понимаете, что это просто способ передать указатель на объект?

    Boost - тестовая лаборатория с кучей велосипедов, именно поэтому он не входит в стандарт.

    Из существующих библиотек к стандарту языка относится только одна - STL. Почему МС и Борланд сделали свои, несовместимые ни с кем классы? Да потому что они всегда так делали и делают!

     
     
  • 5.68, dq0s4y71 (??), 23:32, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да Ну и как же по-разному работают преобразования в трех последних строчках сле... большой текст свёрнут, показать
     
     
  • 6.69, тоже Аноним (ok), 00:08, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ну и как же по-разному работают преобразования в трех последних строчках следующего кода?

    Если вы этого не знаете, почитайте учебник или хотя бы блоги. Например, http://alenacpp.blogspot.com/2005/08/c.html

    Вообще, классический тролль-пост. Фу.

     
     
  • 7.75, dq0s4y71 (??), 12:23, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Если вы этого не знаете, почитайте учебник или хотя бы блоги. Например, http://alenacpp.blogspot.com/2005/08/c.html

    Что, не можете дать ответ? Значит, вы и не знаете. А ответ очень прост: во всех трёх случаях преобразования работают АБСОЛЮТНО ОДИНАКОВО, то есть мы имеем дело с классическим "велосипедом".

    > Вообще, классический тролль-пост. Фу.

    Ну, это понятно. Если аргументы по теме кончились, нужно обозвать оппонента троллем.

     
     
  • 8.82, WinPooh (?), 19:52, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, в том числе и поэтому О чём Страуструп честно рассказывает в D E Работают ... текст свёрнут, показать
     
     
  • 9.89, dq0s4y71 (??), 13:13, 25/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Чем рассказывать, лучше бы сделал свой язык нетипизированным, тогда проблема пр... текст свёрнут, показать
     
  • 4.63, alex (??), 20:20, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >[оверквотинг удален]
    > кода они чаще всего работают одинаково?
    > Зачем в Boost нужны 10 типов указателей (auto_ptr, linked_ptr, scoped_ptr, shared_ptr,
    > smart_ptr, weak_ptr, intrusive_ptr, exception_ptr...) и знаете ли вы как пользоваться
    > каждым из них?
    > Почему все существующие библиотеки (STL, Boost, MFC, VCL...) определяют одни и те
    > же структуры данных типа List или Matrix, несовместимые между собой?
    > Продолжать? :)
    > Теперь о том, чем бы я все это заменил. Я бы, честно
    > говоря, все это выкинул вместе с С++ и заменил бы языком,
    > более подходящим для решения каждой конкретной задачи.

    Sorry man, but you are a total lamer in C++, according to your kindergarten questions?
    Please don't humiliate yourself.

     
  • 4.70, Сергей (??), 02:25, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    По поводу ссылок и указателей... Указатель бывает нулевым, а ссылка - нет. Соответственно для указателей нужно добавлять проверку на нулевой указатель, возвращать какой-то код ответа или исключение, в вызывающей функции делать то же самое и т.д. вплоть до функции самого нижнего уровня (main, например). Кроме того, при передаче по ссылке может неявно вызываться конструктор передаваемого объекта. С указателем такого нет. Так что не путайте ссылки и указатели. Это совсем разные вещи.
     
     
  • 5.76, dq0s4y71 (ok), 13:20, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Для процессора это абсолютно одинаковые вещи Разница существует только на уровн... большой текст свёрнут, показать
     
     
  • 6.79, Аноним (-), 18:30, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Указатель можно передать левый, а ссылку нет.
     
     
  • 7.83, Аноним (-), 19:56, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Указатель можно передать левый, а ссылку нет.

    С указателями можно использовать арифметику, что позволяет в ряде случаев сделать очень эффективные в плане производительности фокусы, например избавившись от лишнего копирования данных в памяти ("zero-copy").А кто-то потом еще искренне удивляется чего это явы и дотнеты сливают в 4 раза в тяжелых вычислениях, и почему все игры в итоге на си++ как один пишут, да и тяжело нагруженные проекты нынче тоже на нем переписывают почему-то. Наверное потому что в 4 раза меньше серверов стоят в 4 раза меньше денег :)

     
     
  • 8.92, Сергей (??), 23:57, 25/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ссылку можно легко преобразовать в указатель операцией получения адреса , а пот... текст свёрнут, показать
     
  • 7.90, dq0s4y71 (??), 13:17, 25/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Указатель можно передать левый, а ссылку нет.

    Если постараться, то можно и член сломать :)

     
     
  • 8.93, Сергей (??), 00:01, 26/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Передача нулевого указателя - очень часто встречающийся глюк Ссылки спасают от ... текст свёрнут, показать
     
  • 6.94, Сергей (??), 00:18, 26/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Так что не путайте ссылки и указатели. Это совсем разные вещи.
    > Для процессора это абсолютно одинаковые вещи. Разница существует только на уровне синтаксиса языка

    Учитывая, что код, который пишет программист и генерирует компилятор до передачи в функцию и внутри функции, разный, то на уровне ассемлера это всё таки разные вещи: иногда неявный вызов конструктора для ссылок и проверка на NULL для указателя.

    Но повторюсь, лично я не противопоставляю эти два инструмента, а использую их оба в зависимости от ситуации.

     
  • 2.31, Vkni (?), 06:08, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > мне кажется из С++ уже пора выкидывать фичи а не добавлять

    Это и Страуструпу кажется. Только вот, к сожалению, невозможно. Иначе бы он давным давно этим воспользовался.

     
     
  • 3.34, Ostrov (??), 09:01, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    "Страусс" уже давно живой памятник, от которого мало что зависит в его собственном детище.
     
     
  • 4.49, Аноним (-), 11:59, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > "Страусс" уже давно живой памятник, от которого мало что зависит в его
    > собственном детище.

    Просто если вы выбросите фичи - придут те у кого сломались программы. Отщипнут от вас по кусочку. И в результате от вас очень скоро останется отполированный до блеска ... скелет.

     
  • 2.45, Аноним (-), 11:52, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > мне кажется из С++ уже пора выкидывать фичи а не добавлять

    Зачем? Потеряется обратная совместимость, перестанет работать куча софта, кто-то не сможет пользоваться удобными ему конструкциями. В каком месте наступит профит?

     

  • 1.3, atropos (?), 22:04, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +12 +/
    эта новость здесь только для того, что бы отправить читателя по ссылке? по моему, без списка изменений, хотя бы краткого, это даже на заметку не тянет
     
     
  • 2.18, Аноним (-), 00:22, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вообще-то в мини-новостях изначально кидали только ссылки на подобные статьи с краткой аннотацией. Но в последние годы разбаловали вас. Общество потребителей, нет что бы дополнить, под новостью есть кнопка "исправить".
     
     
  • 3.53, atropos (?), 12:11, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    новая стратегия маркетинга? плоха не новость, а плох тот кто её читает? вообще это называется критика и нужна она для того, что бы держать новости на уровне. думаю даже ты догадываешься на сайт с какими новостями скорее придёт читатель
     
  • 2.78, Аноним (-), 18:22, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > эта новость здесь только для того, что бы отправить читателя по ссылке?
    > по моему, без списка изменений, хотя бы краткого, это даже на
    > заметку не тянет

    ты ошибся ресурсом, это не лор.

     

  • 1.5, Below (ok), 22:47, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Наверное очень трудно создавать стандарты, которые будут использовать лет через 10. Это сколько всего нужно предусмотреть, тяжелая работа наверное.
     
     
  • 2.48, Kodir (ok), 11:57, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Вот потому, что это трудно, нельзя допускать в индустрию "поделки" одиночных "гениев" - сначала они должны доказать, что каждое их решение было взвешенным и не имеет альтернатив. А то, что Страус прикрутил ООП к ассемблеру - так это хобби, а не "стандарт"!
     
     
  • 3.87, Аноним (-), 22:31, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот потому, что это трудно, нельзя допускать в индустрию "поделки" одиночных "гениев"
    > - сначала они должны доказать, что каждое их решение было взвешенным
    > и не имеет альтернатив. А то, что Страус прикрутил ООП к
    > ассемблеру - так это хобби, а не "стандарт"!

    Как-то так получилось, что это одиг из самых популярных языков программирования и альтернативы ему нет. Так что адекватные программисты смотрят на тебя как на известно что.

     
     
  • 4.91, Below (ok), 23:24, 25/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >> Вот потому, что это трудно, нельзя допускать в индустрию "поделки" одиночных "гениев"
    >> - сначала они должны доказать, что каждое их решение было взвешенным
    >> и не имеет альтернатив. А то, что Страус прикрутил ООП к
    >> ассемблеру - так это хобби, а не "стандарт"!
    > Как-то так получилось, что это одиг из самых популярных языков программирования и
    > альтернативы ему нет. Так что адекватные программисты смотрят на тебя как
    > на известно что.

    Не путайте C и С++

     

  • 1.11, Аноним (-), 23:04, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну ничего, оно, наверн, к 2025му году только выйдет. Сколько там уже 0х делается? )
     
     
  • 2.21, Аноним (-), 00:26, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    C++11 и есть C++0x
     

  • 1.13, croster (ok), 23:05, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прочитал всю статью по ссылке, спасибо за информацию. Единственная проблема состоит в том, что будет необходимо создание новых (и переписывание старых приложений), использующих новые фишки языка, а на это уйдет немало времени.
     
     
  • 2.27, Аноним (-), 02:24, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Прочитал всю статью по ссылке, спасибо за информацию. Единственная проблема состоит в
    > том, что будет необходимо создание новых (и переписывание старых приложений), использующих
    > новые фишки языка, а на это уйдет немало времени.

    Зачем? Это, блин, не проприетарные "фичи" отдельных производителей CPU из 80-x, для поддержки которых надо было специальный ассемблерный код писать. И переписывать ничего не надо. Хочешь - бери и пиши новый код с C++0x фичами (что можно было делать и делали уже много лет), не хочешь - не пиши.

     
     
  • 3.47, Аноним (-), 11:55, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Как ни странно, "специальный ассемблерный код" пишут и в 2011 году. Кто же виноват что аккуратное переписывание критичного куска на ассемблере (например с SIMD командами) повышает скорость работы этого куска порой в несколько раз? Яркий пример - кодеки ;). Или совершенно любая задача для скоростных вычислений, например любой уважающий себя крэкер хешей внаглую использует жесточайший asm. А то и GPU вообще.
     
  • 3.85, croster (ok), 21:43, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Хочешь - бери и пиши новый код с C++0x фичами (что можно было делать и делали уже много лет), не хочешь - не пиши.

    Если не писать новый код, то тогда и смысла во внедрении нового стандарта никакого, так как текущий код прекрасно компилируется и старыми компиляторами.

     

  • 1.16, тоже Аноним (ok), 23:30, 22/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > C++11 supports in-class initialization of data members:

    Вот эта мелочь реально могла появиться в этом языке еще лет двадцать назад. Неужели никому до сих пор не мешала необходимость запихивать инициализацию даже самых тривиальных членов в конструктор класса?

    > In C++11 a constructor may call another constructor of the same class

    Аналогично - что мешало сделать это раньше? Правда, более интересным вариантом был бы вызов одного конструктора из любой точки другого. Чаще варианты конструктора требуют предварительной подготовки, сводящей исходные данные к тем, которые нужны классу для создания. Естественно, операции в конструкторе до вызова другого конструктора не должны обращаться к нестатическим членам и методам класса.

     
     
  • 2.19, Аноним (-), 00:22, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Кстати инициализация не статичных членов класса в месте их объявления реализована в последних сборках gcc в флагом стандарта 0x.
     
  • 2.29, Аноним (-), 02:32, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> C++11 supports in-class initialization of data members:
    > Вот эта мелочь реально могла появиться в этом языке еще лет двадцать назад

    20 лет назад программирование было более строгим. Создание экземпляра класса происходит нигде, кроме конструктора - значит только там и должна быть инициализация мемберов. Сейчас, видимо, уже всем похрен - запихнём в объявление, хренли.

    >> In C++11 a constructor may call another constructor of the same class
    > Аналогично - что мешало сделать это раньше?

    Вот тут, пожалуй, согласен - это нужно.

    > Правда, более интересным вариантом был бы вызов одного конструктора из любой точки другого.

    А вот это уже бред.

     
     
  • 3.36, тоже Аноним (ok), 09:43, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну представьте, что у вас сложный класс с кучей, например, нестатичных переключателей (bool), которые нужно инициализировать в конструкторе.
    Причем классов несколько, они все наследники некоего базового, и переключатели инициализируются по-разному.
    У каждого из классов три конструктора: один - без аргументов, второй - с аргументами, рассыпанными по переменным, третий - с теми же аргументами, нетривиально собранными в один класс.
    Не многовато ли тупого, однотипного кода придется писать с текущими ограничениями?

    И главное - в чем принципиальная невозможность для компилятора подставить инициализацию нестатических членов в каждый объявленный конструктор автоматически?

     

  • 1.56, Andrey Mitrofanov (?), 12:34, 23/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Бьерн Страуструп, создатель C++, упомянул
    > в одном из интервью, что C++11 ощущается как новый язык, части
    > которого сочетаются друг с другом лучше.

    Положительная новость! Наконец-то у старика Страустрапа есть железная отмазка!! %) "Наше .....ммммм.... язык! в _следующем _релизе _стандарта станет ......ммммммм.... уже не так плох. Нет, правда!"

     
  • 1.57, yurkis (ok), 13:13, 23/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Блин, а пропертей как небыло так и нет :(
     
     
  • 2.65, тоже Аноним (ok), 22:51, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если они вам действительно нужны:
    http://en.wikipedia.org/wiki/Property_%28programming%29#C.2B.2B
     
  • 2.73, Аноним (-), 02:34, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Блин, а пропертей как небыло так и нет :(

    И, надеюсь, никогда не будет.

     

  • 1.64, арсен (?), 20:52, 23/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    С++ в лучших традициях голивудского хорора: на последнем кадре из могилы вдруг высовывается рука. И становится ясно: труп все еще не труп.

    Лично мне С++ напоминает автомобиль с ручной коробкой: все через это должны пройти, чтобы больше к этому не возвращаться.

     
     
  • 2.67, aannoonn (?), 23:11, 23/06/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Крутая освоения - почти ветикальна ( освоить нужно все и сразу, не всем дано :( ) потому и нытье.  
     
  • 2.74, Аноним (-), 02:37, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > С++ в лучших традициях голивудского хорора: на последнем кадре из могилы вдруг
    > высовывается рука. И становится ясно: труп все еще не труп.

    Звездите дальше. Весь софт написан на C и C++, и ничего на милых вашему сердцу тормозных динамических язычках с VM и GC.

    > Лично мне С++ напоминает автомобиль с ручной коробкой: все через это должны
    > пройти, чтобы больше к этому не возвращаться.

    Вы банальнейший криворукий неосилятор :)

     

  • 1.66, Аноним (-), 23:08, 23/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    та нормальные плюсы. конечно можно было бы упростить некоторые абсолютно рутинные и ненужные в современном мире вещи, но в списке их нет к сожалению. авторы заядлые плюсищники, готов поспорить что они на других языках никогда ничего не разрабатывали и потому ихнее видение улучшений именно такое..
     
     
  • 2.88, Аноним (-), 22:34, 24/06/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > та нормальные плюсы. конечно можно было бы упростить некоторые абсолютно рутинные и
    > ненужные в современном мире вещи, но в списке их нет к

    Тут скорее учитывая опыт C++ сделают новый язык. Примерно как с perl6.

     

  • 1.86, croster (ok), 21:54, 24/06/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >готов поспорить что они на других языках никогда ничего не разрабатывали и потому ихнее видение улучшений именно такое

    Дело не только в том, что они заядлые плюсищники, а еще и в обратной совместимости. А это накладывает ограничения на возможность выбрасывания чего-либо из языка.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру