Prof Brian Ripley
2007-Aug-08 07:25 UTC
[Rd] Use of __FUNCTION__ and__PRETTY_FUNCTION__ is not portable
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