__FUNCTION__ macro is fully supported?

Can I use __FUNCTION__ macro in code? All compilers are supported this? (linux cross compiler, etc).
For example PURE_VIRTUAL function uses as first parameter name of function, but code may be a little short without this parameter. And also this macro is great for debugging in some cases.

virtual void SlowCheck() PURE_VIRTUAL(UMyObject::SlowCheck, ); 

Looks strange. Duplicate the class name and function name.
This looks more cool:

virtual void SlowCheck() PURE_VIRTUAL(,);

Thanks!