|
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