1. __func__ is not a macro.
"C99 introduced __func__, ... Both of these are strings containing the name of the current function ...
Neither of them is a macro; the preprocessor does not know the name of the current function."
2. __func__ is there for C compatibility,
the C standard defines it as function name only and that's all. It's not meant to be useful in C++.
3. Reflection
The reflection group is working on having a full static reflection which renders your proposal useless. (meta classes, reflexpr, etc...).
You could ask for $__func__ though.