Книга Design Patterns от GoF, вышедшая в 1994 году, была написана с учетом C++, как и языков, и многие примеры кода были приведены в C++. Программисты других языков считали, что их языкам не нужны эти 23 шаблона проектирования, поскольку эти языки имеют функции, которые сделали многие из шаблонов излишними.
Из Википедии:
Основная критика шаблонов проектирования заключается в том, что его шаблоны являются обходными решениями для недостающих функций в C++, заменяя элегантные абстрактные функции длинными конкретными шаблонами, по существу становясь "человеческим компилятором" или "генерируя вручную расширения какого-то макроса". Питер Норвиг демонстрирует, что 16 из 23 шаблонов в Design Patterns упрощены или устранены (через прямую поддержку языков) в Lisp или Dylan.
C++ претерпел пять изменений с момента выпуска книги "Образцы дизайна" (в 98, 03, 11, 14, 17). Поэтому вопрос в том, насколько современный C++ упрощает или устраняет необходимость в этих 23 шаблонах проектирования?
Было бы неплохо перечислить шаблон проектирования вместе с языком C++, который устраняет или упрощает необходимость в этом шаблоне.