Еще в 70-х была написана книга Введение в макросы. Кэмпбел-Келли М.
Вот здесь ее продают:
https://www.bookvoed.ru/book?id=6716078#tdescription
В этой книжке автор определяет 3 вида макросов: текстовые, синтаксические и вычислительные (третий термин, возможно, уже попутал)
Основная операция макросов — подстановка.
Текстовый вид макросов все знают.
Синтаксические макросы — это подстановка на этапе компиляции с проверкой получившегося синтаксиса.
Как все, надеюсь, понимают, шаблоны — это разновидность синтаксических макросов по классификации Кемпбела-Келли.
Кстати, был в свое время такой компилятор Clipper для языка Dbase II
Там в 5-й версии синтаксические макросы расцвели просто невообразимо.
Не помню про вычислительные макросы — надо перечитать.
Но в С++ есть инлайн-функции, где на место вызова функции подставляется ее тело.
Возможно, это они и есть.