Boost logo

Boost :

Subject: Re: [boost] [contract] syntax redesign
From: lcaminiti (lorcaminiti_at_[hidden])
Date: 2011-06-01 18:22:49

lcaminiti wrote:
> I can eliminate a large number of extra parenthesis based on a few pp
> tricks I've learned in processing Boost.Local's `const bind(type)&
> var`. Plus, I can provide (optional) support for variadics macros so
> to use comma-separated pp tuplets instead of parenthesized pp
> sequences on preprocessors with variadics.

This is "just" a naming question. If you had a macro that returned the trait
of the function access level (public, protected, private, or empty), how
would you name the macro?

For example:

    PP_META_TRAITS_FUNC_ACCESS( public void (push_back)( (T const&) value )
) // expand to `public`
    PP_META_TRAITS_FUNC_ACCESS( void (push_back)( (T const&) value ) ) //
expand to nothing

I could think to name these trait macros:
1) Meta-programing: PP_META_TRAITS_...
2) Language: PP_LANG_TRAITS_...
3) Syntax: PP_SYN_TRAITS_...
4) Specification: PP_SPEC_TRAITS_...
5) Function, class, template parameters, function parameters, etc:

Also (but I don't like the followings because the trait macros could also
return instructions of the function body, class traits, etc so not just
function signature, declaration, or definition):
6) Signature: PP_SIGN_TRAITS_...
7) Declaration: PP_DECL_TRAITS_...
8) Definition: PP_DEF_TRAITS_...

Do you have an opinion?

Thanks a lot.

View this message in context:
Sent from the Boost - Dev mailing list archive at

Boost list run by bdawes at, gregod at, cpdaniel at, john at