A makrók csak szöveges helyettesítést végeznek, utána ugyanúgy lefut a type-checker, azt nem tudják kikapcsolni.
emlithetnem a jobban type-safe c++ castokat
Te miről beszélsz? Bekapcsolt warningokkal minden normális C compiler szól az olyan castokra, ami C++-ban illegális lenne. Ez alól egyetlen kivétel a void* castolása T*-ra, de az meg a malloc miatt úgy van jól, ahogy a C-ben van.