просто вы оказались слишком тупой, что бы понять простую вещь:
Переход на поросячий визг и личности, как правило, означает неправоту и не украшает вас как человека.
я вам ссылок накидал на стандартную библиотеку,
в которой внезапно полно инструментария для мета-программирования.
Вот именно. Все, что вы можете - это накидать ссылок. Я специально просил пример, который оправдывал бы
НЕОБХОДИМОСТЬ применения меташаблонов в РЕАЛЬНОМ коде. Вы же просто приводите ссылки на справочную информацию,
функционал стандарной библиотеки, которую и так может прочитать любой желающий. Что это доказывает?
Только то, что вы "книжный программист" и не более.
и кстати, не пытайтесь взять меня на понт по части знания стандарта языка.
я уже понял, что ваш уровень - это "си с классами".
на моем поле вы играть все равно не сможете.
слишком плохо знаете язык.
Открою одну истину: программирование ради программирования - бесполезно. Само по себе программирование не имеет смысла,
так же как бесполезны математика, экономика, хирургия и пр. без области их применения. Программирование - это не самоцель,
это всего лишь средство достижения цели. А язык программирования - это инструмент, а не предмет гордости, и ничего более. Всякий язык имеет область
своего применения, так же как и всякое средство языка может быть использовано по-разному для решения различных задач.
Говорить о том, что кто-либо "слишком плохо знает язык", не зная контекста - это примерно то же, что говорить, что стоматологи - не специалисты,
поскольку они не владеют приемами нейрохирургии.
а вовсе не потому, что компания хочет сыкономить деньги на квалифицированных кадрах,
и поэтому вынужденна нанимать ниосиляторов, таких как вы, которые просто не тянут.
(вы ведь об этом подумали? что якобы шаблонны чрезмерно усложняют понимание кода.)
Шаблоны - это мощное и нужное средство языка, которое, как и другие вещи, имеет свою область применения.
Они были задуманы прежде всего как механизм построения контейнеров типа std::vector и решения одинаковых задач
для различных типов данных. Конечно, их синтаксис оставляет желать лучшего, но это уже другая тема.
То, что люди злоупотребляют их использованием - это еще полбеды, настоящая беда в том, что они не осознают последствий.
То, что сейчас модно называть "метапрограммированием" - как правило, сводится к разработке франкенштейна "на шаблонах",
потому что "так завещал Александреску". Конечно, для говноконторы в полтора программиста это не особо трагично, поскольку
разработка на базе подобного кода не волнует ровным счетом практически никого (как впрочем и саму говноконтору). "Гуру"
может сколько угодно ваять метаконструкции и упиваться собственной крутостью и "знанием языка". Но дело в том, что это
никого не колышет, кроме самого "гуру"
А теперь представьте, что речь идет о компании, которая создает промышленный продукт. Этот продукт создается усилиями не одного-двух,
а десятков и сотен разработчиков. Такие компании дорожат своей репутацией и временем как своим, так и клиентов,
поскольку время - это очень важный ресурс. Простой системы из-за программной ошибки в течении несколько минут может стоить десятки, а то и сотни
тысяч денежных единиц. Чем быстрее она будет устранена - тем ниже будут потери.
Вот как вы думаете, почему в серьезных компаниях частно проводится аудит кода и спорные и неочевидные вещи запрещаются к использованию?
Совсем не потому, что код-ревьюверы - идиоты, неспособные понять написанного, а инженеры-программисты - бангалорские обезьянки,
работающие за еду (такое тоже бывает, к сожалению, но это в итоге не играет в плюс менеджменту, который решил сэкономить). А потому, что
код является собственностью компании - раз, и должен быть ПОДДЕРЖИВАЕМЫМ - два.
Представьте, что "гуру", наваявший супермегашаблонный код, в один прекрасный день пойдет на повышение/уволится/выпиздят с конторы/сойдет с ума и заедет на дурку.
Сколько времени потребуется другому инженеру, который придет на место "гуру", чтобы разобраться в его хитросплетениях и найти ошибку либо
расширить функционал? Особенно если "гуру" не оставил практически никаких комментариев и руководства? Должна ли компания нести убытки
из-за того, что кто-то решил, что он "умнее" других?
Да, да, и еще раз ДА. Усложняют. Чрезмерно. Чем меньше темплейтовской заразы - тем лучше.
Дело даже не только в этом. ПРАВИЛЬНО использованный шаблон - это несомненный и жирный плюс. Но надо исходить из реальности, а она такова,
что шаблоны - это корм для компилятора. А перевариваются они гораздо дольше "plain"-кода именно в силу своей иерархичной структуры.
Поэтому когда шаблонный рак (опять же, имеется в виду злоупотребление) проникает в самые глубокие уровни корпоративного фреймворка,
наступает коллапс билдсервера. Да и на местах разработчики вынуждены затрачивать лишнее время на сборку проекта, и все ради того, чтобы
какая-нибудь статическая штука была посчитана во время компиляции.
Кстати, по поводу компиляторов. Известно ли вам, что довольно часто есть необходимость использовать старые версии компиляторов для сборки
проектов? Здесь опять же я имею в виду проекты, имеющие жизненный цикл в несколько лет (а то и десятков). Продиктовано это может быть чем угодно,
от целевой системы заказчика до специфики используемых библиотек. Как вы думаете, что произойдет, если придет "гуру"-знаток 17-го стандарта и запилит в код
свое меташаблонное решение?
Нет, здесь, конечно, можно много об эффективности старых компиляторов - тут я не спорю, что переход на новые
версии в основном приносит значительные преимущества. Но не нужно забывать о том, во сколько обойдется фирме собственно портирование продукта,
и его тестирование...
Фух... Вот, вроде, вкратце, что я хотел сказать (писал сей опус с перерывами во время компиляции фреймворка, пронизанного шаблонами).
на моем поле вы играть все равно не сможете.
Я не играю в игры под названием "кто назовет больше паттернов", эти времена уже прошли.