
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: PP_FUNC_TRAITS_... PP_CLASS_TRAITS_..., PP_TEMPLATE_PARAMS_TRAITS_, PP_FUNC_PARAMS_TRAITS_..., 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. --Lorenzo -- View this message in context: http://boost.2283326.n4.nabble.com/contract-syntax-redesign-tp3563993p356713... Sent from the Boost - Dev mailing list archive at Nabble.com.