Peter Eisentraut wrote:
> 
> It has been brought up that elog should be able to automatically fill in
> the file, line, and perhaps the function name where it's called, to avoid
> having to prefix each message with the function name by hand, which is
> quite ugly.
> 
> This is doable, but it requires a C preprocessor that can handle varargs
> macros.  Since this is required by C99 and has been available in GCC for a
> while, it *might* be okay to rely on this.
>
> Additionally, C99 (and GCC for a while) would allow filling in the
> function name automatically.
> 
> Since these would be mostly developer features, how do people feel about
> relying on modern tools for implementing these?  The bottom line seems to
> be that without these tools it would simply not be possible.

It is possible, however, the macros require an extra set of parentheses:

void elog_internal(const char* file, unsigned long line, ... );
#define ELOG(args)      elog_internal(__FILE__, __LINE__, args)

ELOG(("%s error", string))

For portability to older compilers, you should probably not require C99.

Also, I'm not positive, but I think that varargs are not part of C++
yet.  
However, they will likely be added (if not already in draft form).

Neal

_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


Mon, 19 Mar 2001 20:44:11 -0500
Neal Norwitz <nnorwitz@yahoo.com>
Re: elog with automatic file, line, and function