Přicházíte však o možnosti a abstrakce, které vám nabýzí C++ díky třídám a šablonám
Naštěstí tím nepřichází o možnosti a abstrakce, které C++ nikdy nenabízelo, například dynamické objektové systémy, kvalitní koncept funkce (plný lexikální scoping) a podobně.
(nebo je musíte složitě nahrazovat - je-li to vůbec možné).
Leckdy se dá nahrazovat jednoduše, není třeba nahrazovat složitě. Kromě toho se mi zdá, jako byste měl dojem, že C++ templates jsou snad jakýmsi nedostižným vrcholkem všech makrosystémů, který je zapotřebí kopírovat, když je složitý makrosystém zapotřebí.
Můj názor je prostý: šroubovat šroubovákem a zatloukat kladívkem. C++ jsou bohužel kombinačky. Ano, dají se s nimi žvýkat matky a pižlat dráty, ale chce to medaili za hrdinství. :]