[Rd] Use of __FUNCTION__ and__PRETTY_FUNCTION__ is not portable
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Aug 8 09:25:10 CEST 2007
These are C/C++ extensions found in several packages[1]. They are
non-standard: the C99 standard has __func__ which should be used in C in
place of either. If you really want back compatibilty, try something like
#if __STDC_VERSION__ < 199901L
# if __GNUC__ >= 2
# define __func__ __FUNCTION__
# else
# define __func__ "<unknown>"
# endif
#endif
I don't know a portable equivalent in C++, but I do know that some non-GNU
C++ compilers do not support these, so they should be conditionalized on
__GNUC__ (or tested for by configure). For example, SunPro C++ supports
__func__ as a (non-default) extension:
http://docs.sun.com/app/docs/doc/819-5267/6n7c46dpc?a=view
so probably configure should be used to test what is available.
[1] GOSim MCMCpack MasterBayes RGtk2 rcom smoothSurv
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list