Как стать автором
Обновить

Комментарии 23

Как-то посыла статьи не понял. Как реферат второго курса прочитал O_O

p.s.: я даже второй раз перечитал. всё равно не дошла радиограмма из центра.
Что-то ощущение, как будто какой-то тизер статьи прочитал… наверное 1 или 2 случай, когда в блоге PVS ставлю минус =(

недавно смотрел доклад с cppcon, один из слайдов был «а что ж такое этот самый modern C++», ощущение что вот просто оттуда все взято.
Автор (обращаю внимание, что это перевод), хотел на мой взгляд донести мысль, что использовать свежий C++ компилятор и, скажем auto, не означает, что вы пишете на современном языке С++. Можно, например, по-прежнему обрабатывать ошибки и чистить ресурсы написанием goto для перехода к эпилогу функции.

Возможно, заметка получилась у автора не очень. Ну или перевод не получился :). Но мне мысль хорошо понятна и показалась мне интересной.
Да вроде вы пишете (и автор) правильные вещи. Но это мое мнение — это все не стоит статьи.
То что не заметил что перевод — целиком мой косяк, каюсь, претензии безосновательны — уж больно не ожидал увидеть перевод в этом блоге =)
Перевод с точки зрения сохранения смысла хороший. Но сам материал не стоящий. Вот так, уж простите.
Большинство дополнений предлагаемых в новых стандартах возникло не на пустом месте, это ответ на запросы программистов улучшить что-то или сделать удобнее. Поэтому выход каждого нового стандарта сопровождается дружным выдохом, «наконец-то, теперь я могу сделать вот так ...». Те же, кто [добровольно] продолжает писать в рамках С++-98 неизбежно упускают какие-то возможности. Я не верю что [нормальный] программист может просто игнорировать способ сделать что-то лучше.
Обратное разумеется тоже верно, игнорируя, например RAII, нереально писать хорошо на любой версии С++

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

Какой C++ начинать учить в конце 2018 начале 2019, при условии что Си в достаточной мере освоен? Желательно с ссылками на материалы/книги.
НЛО прилетело и опубликовало эту надпись здесь
C++98 и С++11, и С++20, другими словами — весь:)

Книги
Моё, сугубо личное, мнение: С++17 + STL
Скидую то, что сам читал

www.piter.com/collection/yazyk-programmirovaniya-ss-s/product/s17-stl-standartnaya-biblioteka-shablonov
OR
Осваиваем C++17 STL от ДМК Пресс

www.piter.com/collection/yazyk-programmirovaniya-ss-s/product/obektno-orientirovannoe-programmirovanie-v-s-klassika-computer-science-3

А деле как пойдет, там уже надо самому смотреть что больше надо.
С++17 + STL

Например банальный метод «contains» добавили в std::set только в С++20. А без этого был либо позорный визуально «find() != end()» либо уродливый принципиально count() != 0. Так что нет предела совершенству.
if (set.count(elem))
{
}
не так уж уродливо, по сути также с точки зрения интерфейса, за исключением названия
Неявный каст числа к булу. Плюс count не обязан работать для set за разумное время (реализация может быть даже за O(n)), в то время как contains будет гарантированно правильным и быстрым.
Я с Вами полностью согласен, но как по мне начинать учить с С++20 не стоит.
Во первых, стандарт еще не вышел, и никто не знает когда выйдет.
Во вторых, С++17 сейчас флагман, и на нем можно нормально писать что угодно, и нету смыска, как по мне, начинать учить С++20 новичку без нормальной литературы.

Человек просил посоветовать литературу, а по С++20, насколько я знаю, нету полноценых изданий тот O'Reilly например.
Я себе ещё в С++98 почти сразу добавил самописный bool contains(const set«T»&, T), и не очень понимаю зачем писать раз за разом уродливые конструкции, если можно их заменить более красивыми (лаконичными), которые можно сделать в рамках любого диалекта языка.

Rust же.

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Мое личное мнение (как человека, начавшего изучение С++ именно с С) — это неудачный совет. Страуструп хорош, как фундаментальный учебник для человека, замечателен как справочник, как настольная книга, когда начинаешь курить новые конструкции.
Но вот прям как самоучитель для начинающих… увольте. Мне кажется, должны быть альтернативы получше, иначе если не зайдет, у человека вообще может желание изучать язык отбить.
в начале прочтения статьи у меня было чувство что дальше по тексту будут примеры как делать не надо, какие конструкции лучше заменять какими в «современном с++», другими словами, больше конкретики. И тут внезапно статья оборвалась…
Угу. Читаешь так — да, введение хорошее, часто про него забывают, приятно, что кто-то потратил на это время, а не «с места в карьер», ща заценим саму статью… ой, а где же она?

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

Хотелось бы в такой статье видеть примеры как:
в C++98 конструкцию «ХХХХХХ» реализовать было сложно «пример кода С++98», а в C++17 реализуется легко «пример кода С++17»
«Настоящий физик может писать фортраном на любом языке»

Как теперь в современном C++ получают указатель на член класса?
Как обстоят дела с экспортом функционала во внешний мир?
Уже сделали препроцессор удобным и безопасным?
Сколько нынче весит C++ компилятор со стандартной библиотекой?
Есть ли уже стандартный менеджер пакетов и зависимостей?
Зарегистрируйтесь на Хабре , чтобы оставить комментарий