Boost logo

Boost :

From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2005-07-14 15:28:32


> -----Original Message-----
> From: boost-bounces_at_[hidden]
> [mailto:boost-bounces_at_[hidden]] On Behalf Of David Abrahams

> I am defining a macro,
>
> BOOST_PARAMETER_KEYWORD(tag_namespace, name)
>
> that declares a keyword for the Parameter library. It has to
> be used at namespace scope. I have the option to define it
> so that correct usage requires a trailing semicolon, or so
> that the trailing semicolon is forbidden. Unfortunately I
> don't have the ability to make it optional. Which should I choose?
>
> IMO there's no chance of confusing it with a function call,
> since a function call would be illegal in the context in
> which it's used, and people are naturally more likely to add
> a semicolon without thinking about it, and if I design the
> macro so that a semicolon is required it will interact more
> smoothly with editors and pretty-printers. So I can't see
> any good reason not to require the semicolon. Arguments?

I'm against just about anything that attempts to make a macro invocation look
more like regular code. This is nothing but a workaround for an editor (of all
things). The macro invocation is not a declaration, it does not fit into the
syntax model of C++, and it should not be made to look like it does--regardless
of what it expands to.

Regards,
Paul Mensonides


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk