HP aC++ A.03.85 Release Notes

HP aC++ Release Notes
New Features in Version A.03.25
Chapter 160
For GNU/gcc style coding:
#include <stdio.h>
class a {
public:
sub (int i)
{
printf (ā€œ__FUNCTION__ = %s\nā€, __FUNCTION__);
printf (ā€œ__PRETTY_FUNCTION__ = %s\nā€, __PRETTY_FUNCTION__);
}
};
int main (void)
{
a ax;
ax.sub (0);
return 0;
}
Output from the example would be:
__FUNCTION__ = sub
__PRETTY_FUNCTION__ = int a::sub (int)
NOTE These names are not macros. They are predefined string variables. For
example, #ifdef __FUNCTION__ has no special meaning inside a function,
since the preprocessor does not recognize __FUNCTION__. Also note, the names
__FUNCTION__, __PRETTY_FUNCTION__, and __func__ are reserved for use by
the compiler. If any other identifier is explicitly declared using any of these
names, the behavior is undefined.
Macros Having a Variable Number of Arguments
A macro can be defined to accept a variable number of arguments, much as you would define
a function. This provides compatibility with the C99 standard and GNU/gcc style coding. If
you have coded your macros in GNU/gcc style, you can expect GNU/gcc style behavior. If you
have coded your macros to C99 standards, you can expect C99 style behavior.
For C99 style coding: