Jaja. :-)))
Alapvetően kár belemenni.
Ez ilyen lett, ezt kell szeretni.
Tudom, mindennek megvan az oka. Másképp nem lehetett, csak így korrekt, blabla...
De sajnos nagyon csúnya kódokat kell írni, hogy kézenfekvő dolgokat használjunk. (Pl. próbálj meg template class-ból leszármazni egy másik template class-t, és aztán az ősosztály egy protected memberére hivatkozni a leszármazott osztály egy metódusában. De ezen kívül az eszembe van még kapásból három dolog, ami szerintem csökkenti a nyelv olvashatóságát.)
Annyira bonyolult, hogy évekig egy C++ compiler sem tudta maradéktalanul megvalósítani...
Nem feladatom, hogy jobbat javasoljak helyette, de igen körülményes használni, ha az ember átlátható és hordozható kódot akar csinálni. Szvsz.
Hogy konkrét legyek mégis: Megkockáztatom, jobb lett volna, ha az msvc koncepcióját írják elő, mely szerint a template igazából egy "intelligens define", és nem is parse-olódik be, amíg konkrétan nem példányosítják.