Шаблоны С++ - опять в продаже!
От: LaptevVV Россия  
Дата: 03.08.18 14:29
Оценка: 28 (4) +1
https://www.ozon.ru/context/detail/id/145861864/

Данное издание описывает новые возможности стандартов C++11, C++14 и C++17 и демонстрирует последние достижения в области шаблонов C++ для создания широкого спектра приложений. Авторы подробно объясняют все новые возможности языка, которые улучшают шаблоны или взаимодействие с ними, рассматривая такие темы, как вариативные шаблоны, обобщенные лямбда-выражения, вывод аргументов шаблонов классов, конструкцию if времени компиляции, передаваемые ссылки и пользовательские литералы. Они также глубоко вникают в фундаментальные концепции языка (такие как категории значений) и полностью охватывают стандартные свойства типов.

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

Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Шаблоны С++ - опять в продаже!
От: smeeld  
Дата: 03.08.18 14:35
Оценка: -4 :)))
Здравствуйте, LaptevVV, Вы писали:

Народ от шаблонов C++ шарахается как от огня, а умение не применять шаблоны считается признаком высокой квалификации. Использующих шаблоны, называют "неумеющими писать просто". Но в чисто академических целях можно и поприкалываться, то там больше экспериментировать хочется, а не талмуды читать.
Re: Шаблоны С++ - опять в продаже!
От: kov_serg Россия  
Дата: 03.08.18 14:57
Оценка: +4 -1
Здравствуйте, LaptevVV, Вы писали:

LVV>https://www.ozon.ru/context/detail/id/145861864/

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

Лучше бы описали как правильно организовывать большие проекты. Как бороться с накоплением сложности.
Или как работать с видео, звуком, zip-архивами, растровыми изображениями, юникодными текстами и базами данных на C++.
Есть такие книги?
Re[2]: Шаблоны С++ - опять в продаже!
От: B0FEE664  
Дата: 03.08.18 15:15
Оценка:
Здравствуйте, smeeld, Вы писали:

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


Если человек шарахается от std::shared_ptr, то у него низкая квалификация. А ведь std::shared_ptr — это шаблон.
Так что не понятно, о чём вы пишите.
И каждый день — без права на ошибку...
Re[2]: Шаблоны С++ - опять в продаже!
От: YuriV  
Дата: 03.08.18 16:00
Оценка:
Здравствуйте, smeeld, Вы писали:

S>Здравствуйте, LaptevVV, Вы писали:


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


А нужно наоборот шарахаться от такого народа, потому что знание языка, на котором пишешь, во всех его аспектах и

считается признаком высокой квалификации


Использующих шаблоны, называют "неумеющими писать просто".

А

пишущие просто

в результате выносят кучу кода в рантайм, который там никогда не используется или наоборот гоняют код, который может быть исключён на этапе компиляции. Или другая беда, вместо одного шаблонного класса или функции создаётся семейство. Грамотное метапрограммирование позволяет генерировать код не только для разных типов, но и для разных моделей поведения. А что касается чтения шаблонного кода отвечу известной цитатой: "Борис, только не нанимай на это дело дол...бов." (с)
Re[2]: Шаблоны С++ - опять в продаже!
От: ArtDenis Россия  
Дата: 03.08.18 17:04
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Шаблоны это конечно здорово -- писать. Но вот читать и отлаживать их редкое "удовольствие".


А можно пару слов про проблемы отладки шаблонов?
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[3]: Шаблоны С++ - опять в продаже!
От: kov_serg Россия  
Дата: 03.08.18 17:10
Оценка: +1 :)
Здравствуйте, YuriV, Вы писали:

YV>в результате выносят кучу кода в рантайм, который там никогда не используется или наоборот гоняют код, который может быть исключён на этапе компиляции.

Вы шутите? Посмотрите на размеры бинарных файлов которые генерит C++. Вы удивитесь сколько кода там не используется.

YV>Грамотное метапрограммирование позволяет генерировать код не только для разных типов, но и для разных моделей поведения.

Разница между теорией и практикой в том, что в теории, между теорией и практикой нет разницы, а на практике она есть.

Оглянитесь кругом, все современные программные продукты досих пор "не идеальны" и не отличаются эффективным использованием ресурсов.
Сегодня главное скорость получения прибыли, а она редко связана с метапрограммированием и поведением моделей.
Тут важне пердсказуемое управлением неуправляимыми программистами чем сам код.
Re[3]: Шаблоны С++ - опять в продаже!
От: smeeld  
Дата: 03.08.18 17:38
Оценка:
Здравствуйте, B0FEE664, Вы писали:


BFE>Если человек шарахается от std::shared_ptr, то у него низкая квалификация. А ведь std::shared_ptr — это шаблон.

BFE>Так что не понятно, о чём вы пишите.

std::shared_ptr, конечно, шаблон, только это больше библиотечный шаблон. Выше имел ввиду не тупо использование чего-то из STL или boost, а написание своего кода, используя параметризацию типов (своих, не библиотечных).
Re[2]: Шаблоны С++ - опять в продаже!
От: jazzer Россия Skype: enerjazzer
Дата: 03.08.18 18:11
Оценка: +2
Здравствуйте, smeeld, Вы писали:

S>Народ ...


Отучаемся говорить за всех
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: Шаблоны С++ - опять в продаже!
От: YuriV  
Дата: 03.08.18 18:11
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Вы шутите? Посмотрите на размеры бинарных файлов которые генерит C++. Вы удивитесь сколько кода там не используется.


Вот-вот, так давайте добавим к нему ещё килотонну.

_>

Разница между теорией и практикой в том, что в теории, между теорией и практикой нет разницы, а на практике она есть.

_>Оглянитесь кругом, все современные программные продукты досих пор "не идеальны" и не отличаются эффективным использованием ресурсов.
_>Сегодня главное скорость получения прибыли, а она редко связана с метапрограммированием и поведением моделей.
_>Тут важне пердсказуемое управлением неуправляимыми программистами чем сам код.

Так шаблонный код и пишется для програмистов, а точнее кодеров, которые не в состоянии сами оптимизировать решение задачи. В моём сегменте (автоматизация производственных процессов, разработка CAD/CAM/CAE для специфических задач, управление ресурсами и т.д.) ценится гибкость и надёжность решения с одной стороны и простота использования, кастомизации с другой. А это модульно-компонентная модель, которая без генерации кода в компайл-тайм очень быстро превращается в неповоротливую тыкву, если сшивание компонетов в систему и выбор поведения системы целиком возложить на рантайм.

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

Что касается прибыли, то в нашей нише прибыль пока ещё измеряется качеством софта, и в меньшей степени скоростью разработки.
Re[2]: Шаблоны С++ - опять в продаже!
От: rg45 СССР  
Дата: 03.08.18 18:34
Оценка: +2
Здравствуйте, smeeld, Вы писали:

S>...а умение не применять шаблоны считается признаком высокой квалификации.


Классно-то как! Теперь неумение применять можно выдавать за умение не применять. Хорошую религию придумали индусы (с)
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[3]: Шаблоны С++ - опять в продаже!
От: kov_serg Россия  
Дата: 03.08.18 19:47
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>А можно пару слов про проблемы отладки шаблонов?

https://en.wikibooks.org/wiki/C%2B%2B_Programming/Chapter_Advanced_Features#Debugging_TMP

Еще инстанцирование может доставлять
https://stackoverflow.com/questions/8130602/using-extern-template-c11#answer-8131212
http://processors.wiki.ti.com/index.php/C%2B%2B_Template_Instantiation_Issues
Re[5]: Шаблоны С++ - опять в продаже!
От: kov_serg Россия  
Дата: 03.08.18 20:14
Оценка:
Здравствуйте, YuriV, Вы писали:

_>>Вы шутите? Посмотрите на размеры бинарных файлов которые генерит C++. Вы удивитесь сколько кода там не используется.

YV>Вот-вот, так давайте добавим к нему ещё килотонну.
Вы не поняли. C++ с шаблонами приводит к более избыточному бинарному файлы практически в 100% случаев.

YV>Так шаблонный код и пишется для програмистов, а точнее кодеров, которые не в состоянии сами оптимизировать решение задачи. В моём сегменте (автоматизация производственных процессов, разработка CAD/CAM/CAE для специфических задач, управление ресурсами и т.д.) ценится гибкость и надёжность решения с одной стороны и простота использования, кастомизации с другой. А это модульно-компонентная модель, которая без генерации кода в компайл-тайм очень быстро превращается в неповоротливую тыкву, если сшивание компонетов в систему и выбор поведения системы целиком возложить на рантайм.

Для таких программистов есть скриптовые языки python, javascript, lisp и даже не кночи помянутый vba.
А для производственных процессов используются чудо языки типа ST в отличии от C++ лютый real-time.

YV>Что касается "не идельны", то опасна не сама неидельность, а сегодняшняя тенденция, предложенная кумарами из бангалора, при которой неидеальность растёт чуть ли факториально. Это ж надо придумать писать текстовые редакторы на нодежс и ещё прикрутить к этому браузер, а взгляните на ответы на SO, человек спрашивает как ему написать какую-нибудь простейшую хрень на коленке, а ему тут же предлагают заюзать мегабиблиотеку или самописную простыню из говна и палок, которую автор даже не удосужился скомпилить.

Тут я с вами полностью согласен. КПД современного софта очень огорчает. Софт строят и "современных" материалов (из говна и палок) и такими же "современными" инструментами. Т.к. вичислительные мощности выросли многократно и стоят копейки, то на них принято не обращать вимания до тех пор пока оно приемлемо шевелится на топовом железе.

YV>Что касается прибыли, то в нашей нише прибыль пока ещё измеряется качеством софта, и в меньшей степени скоростью разработки.

Нет такой величины как качество софта. Даже единиц измерения таких нет. А вот без финансирования какчественный софт вы будете писать столетиями.
Re[4]: Шаблоны С++ - опять в продаже!
От: anonymouse2 Иностранный Агент
Дата: 03.08.18 21:12
Оценка:
Здравствуйте, smeeld, Вы писали:

S>std::shared_ptr, конечно, шаблон, только это больше библиотечный шаблон. Выше имел ввиду не тупо использование чего-то из STL или boost, а написание своего кода, используя параметризацию типов (своих, не библиотечных).


А что такого в нормальной параметризации типов? Это вроде как изначальное, заложенное дизайном языка предназначение шаблонов, до того как "открыли" метапрограммирование на них.
Нет такого преступления, на которое не пошло бы суверенное родоплеменное быдло ради продления своего бессмысленного рода и распространения своего бессмысленного генома.
Re[3]: Шаблоны С++ - опять в продаже!
От: AeroSun  
Дата: 03.08.18 21:29
Оценка: 7 (2) +1
Здравствуйте, ArtDenis, Вы писали:

AD>А можно пару слов про проблемы отладки шаблонов?


Хахаха, годный юмор!


Я изначально учил и дрючил шаблоны, очень нравилось, но потом попробовал кодогенерацию и понеслась!
В текущем виде плюсовые шаблоны — это самый классический говнокод шлакоблок. Кроме простых и очевидных случаев применения их больше нигде нет смысла использовать.
Всё остальное метапрограммирование, имитация рефлексии и попытка в DSL на плюсах — это рак мозга начиная от времени компиляции заканчивая отладкой.
Кодогенерация пишется максимум за 1 день, работает вечно, код красивый и чистый как слеза, оптимизация/отладка идеальна, компиляция мгновенна.
А и возможности кодогенерации безграничны — в отличии от шаблонов ты не зациклен как поставить компилятор раком, чтобы получилось хоть что-то отдалённо похожее на требуемое решение, а работаешь непосредственно над задачей.
Re[3]: Шаблоны С++ - опять в продаже!
От: alpha21264 СССР  
Дата: 03.08.18 21:33
Оценка:
Здравствуйте, rg45, Вы писали:

S>>...а умение не применять шаблоны считается признаком высокой квалификации.


R>Классно-то как! Теперь неумение применять можно выдавать за умение не применять. Хорошую религию придумали индусы (с)


Понимаешь... Вот лично мне невероятно лень изучать технологию, про которую я точно знаю, что я её выкину.
Проще не делать этот ненужный зигзаг.

Течёт вода Кубань-реки куда велят большевики.
Re[5]: Шаблоны С++ - опять в продаже!
От: smeeld  
Дата: 03.08.18 21:34
Оценка:
Здравствуйте, anonymouse2, Вы писали:

A>А что такого в нормальной параметризации типов? Это вроде как изначальное, заложенное дизайном языка предназначение шаблонов, до того как "открыли" метапрограммирование на них.


Навеяно
Автор: chaotic-kotik
Дата: 08.07.18
Re[6]: Шаблоны С++ - опять в продаже!
От: YuriV  
Дата: 03.08.18 21:58
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Вы не поняли. C++ с шаблонами приводит к более избыточному бинарному файлы практически в 100% случаев.


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

_>Для таких программистов есть скриптовые языки python, javascript, lisp и даже не кночи помянутый vba.


Нет, скриптовые языки это тормоза. В нашем внутреннем фреймворке используется луа, но только для макетирования. Заказчику, если он желает, мы тоже предоставляем этот язык для простейших скриптов, но сам фреймворк это модули и компоненты на С++ с метапрограммированием на шаблонах, которые описаны на нашем внутреннем метаязыке (название watermark), который является аналогом Nitra и позволяет создавать свои DSL для разных нужд, умеет парсить подключенный DSL/C/C++ и трансформировать код из DSL представления в С++. Он встроен в гцц через плагин, работает после стадии препроцессинга, но до парсинга.

_>А для производственных процессов используются чудо языки типа ST в отличии от C++ лютый real-time.


Мы не программируем контроллеры, наш уровень для CAM систем это CNC-programming (G-CODE). А входной язык описания архитектуры системы это STEP(ISO-10303) и язык EXPRESS(ISO-10303-11).

_>Тут я с вами полностью согласен. КПД современного софта очень огорчает. Софт строят и "современных" материалов (из говна и палок) и такими же "современными" инструментами. Т.к. вичислительные мощности выросли многократно и стоят копейки, то на них принято не обращать вимания до тех пор пока оно приемлемо шевелится на топовом железе.


Но похоже, что после всех мелтдаунов и спектров направлению "производительность через кэш и speculative execution" приходит кирдык. Сначала ОС перестали использовать страничную память, чем понизили защищённость в обмен на производительность. Теперь во время speculative execution не проверяются разрешения на доступ к областям памяти.

YV>>Что касается прибыли, то в нашей нише прибыль пока ещё измеряется качеством софта, и в меньшей степени скоростью разработки.

_>Нет такой величины как качество софта. Даже единиц измерения таких нет. А вот без финансирования какчественный софт вы будете писать столетиями.

Качественный софт это софт, который соответствует ТЗ заказчика. Если заказчик написал в ТЗ, что для него приемлима частота падения софта раз в неделю, то софт удовлетворяющий этому требованию будет качественным с точки зрения этого требования. А насчёт финансирования, не нужно беспокоится, вы просто не представляете какие деньги платят за специализированные, эксклюзивные системы даже заказчики средней руки, но за это они требуют качественный софт, соответствующий ТЗ/международным/государственным/корпоративным стандартам, там не прокатывают бредни маркетологов. Насчёт столетий вам виднее, но мы создаём свои макеты и продукты за приемлемое для заказчика время, которое также оговорено в ТЗ. Кстати именно для этого и создавалась наши внутренние фреймворки, языки и инструменты и прочая инфраструктура.
Re[4]: Шаблоны С++ - опять в продаже!
От: rg45 СССР  
Дата: 04.08.18 04:41
Оценка:
Здравствуйте, alpha21264, Вы писали:

A>Понимаешь... Вот лично мне невероятно лень изучать технологию, про которую я точно знаю, что я её выкину.

A>Проще не делать этот ненужный зигзаг.

Не изучай, тебе никто ничего не навязывает.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: Шаблоны С++ - опять в продаже!
От: ArtDenis Россия  
Дата: 04.08.18 04:56
Оценка: +1
Здравствуйте, kov_serg, Вы писали:

AD>>А можно пару слов про проблемы отладки шаблонов?

_>https://en.wikibooks.org/wiki/C%2B%2B_Programming/Chapter_Advanced_Features#Debugging_TMP

Т.е. под отладкой имелось ввиду чтение ошибок при компиляции шаблонов?
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.