В стандарте C ++ такого макроса нет, и он включает в себя черновой стандарт C ++ 0x, на который я смотрел. Это усложнит компиляцию, поскольку разбор (необходимый для определения функции) выполняется после предварительной обработки, и я подозреваю, что в стандарте ничего нет.
__func__
, который вы используете, нестандартный, хотя, очевидно, он работает на вашем компиляторе.