Hash define vagy template fuggveny a baratod, ha ilyen meggondolatlan dolgot ismetelni szeretnel, de termeszetesen inkabb tipusbiztonsagra kellene torekedned, smart pointerekre, stb.
A tipusos programozas sokkal tobb elonnyel jar (debug elkerulese, stb), mint nehany karakter megsporolasa egy ilyen corner case eseten. Peldaul ezt irhatnad veletlenul, aminel a fordito nem szol, es majd debuggolhatsz, mig a C++-s verziohoz a compiler nem fog aszisztalni, p es q kulonbozo tipusra mutatnak!
p = malloc(sizeof(*q)); /* Yuck, oopsie! */
Sot, igazabol ide meg a typedef is eleg lenne, es new mytypedef, es akkor csak egy helyen valtoztatod, szoval meg C++11 elott is volt alternative az explicit cast elkerulesere, na mindegy.
Hat meglepo, hogy ez Teged ujonnan ert, hogy nem kell explicit castolas, bar ez alapjan akkor gyanitom sok hasznos feature-t nem ismersz, ami miatt lehet olyan az allaspontod amilyen.
Igazabol mar C++14 is van egy ideje technikailag vegleges formajaban.
Hala Istennek a C++ 2011-ben nem tart ott, ahol a C kezdeteknel. Szomoru lennek, ha ez lenne a helyzet.