Boost logo

Boost :

From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2005-07-14 15:01:28


"David Abrahams" <dave_at_[hidden]> wrote

> 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?

One more option (probably an overkill):

#ifdef (BOOST_USE_TRAILING_SEMICOLON)
# define BOOST_TRAILING_SEMICOLON ;
#else
# define BOOST_TRAILING_SEMICOLON
#endif

Now end all your macro definitions with BOOST_TRAILING_SEMICOLON instead of
';', and the user can change the style with just one [un]define.

Regards,
Arkadiy


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