Nevdelothion: une variable globale c'est plus sûr qu'une macro. Ton préprocesseur C/C++ ne fera aucune vérification de type, et pourra produire du code syntaxiquement correct, mais complètement faux à cause de cast implicites.
Mjonir : ça, c'est pas propre, c'est STUPIDE. Désolé de le dire comme ça, mais ça fait un mois que je suis sûr un code qui abuse de ce genre de techniques et crois-moi, j'en ai plein le dos des ces conneries. Du code (parfois beaucoup) plus long, sémantiquement moins fort (parce que certains idioms se contournent même sans le vouloir), parfois incompréhensible (parce quand tu tombes sur une technique farfelue qui utilise une fonctionnalité avancée du C, pas clair que tu comprennes le truc du premier coup), non merci !
À coté de ça, je tiens à préciser que j'ai vu dans le fameux code des vecteurs passés par copie, et une absence récurrente de const. Bref, faites du code simple, propre et solide, et surtout jeter moi ces idioms à la poubelle lorsqu'ils ne sont pas strictement nécessaires. 