Вы можете посмотреть макросы Common Lisp или шаблоны C ++ и посмотреть, как они используются. Оба являются метапрограммированием в том смысле, в каком вы используете. Вы обнаружите, что оба кода интенсивно используются в большом количестве кода.
Макросы Lisp часто используются для переопределения языка. Например, последняя глава Пола Грэма о Лиспе создает работающее объектно-ориентированное расширение для Common Lisp. Другой пример - ныне несуществующий Гранат .
Старая Стандартная библиотека шаблонов для C ++ (в основном включенная в стандартную библиотеку) была способом введения большого количества контейнеров и алгоритмов, которые работали так, как если бы они были встроены в язык, по крайней мере с точки зрения интеграции и эффективности не синтаксически).