Joel de Guzman wrote:

> Hmmm.... how about namespaces (or modules) ?  :o)...
>
> #< BOOST_PP // boost PP namespace
>     // blah blah blah....
> #>
>
> #< MY_MODULE // my module namespace
>     #using BOOST_PP // using boost PP namespace
>     // blah blah blah....
> #>

Hi Joel, I'm already in the process of writing a paper with an alternative
version of the above.  Problem #1: the operator directives are evil.  They are
not visible, and with serve to make code that includes them hard to read.  We
need a named alternative at least.  Problem #2:  No true scoping is achieved:

#<
#define DETAIL 123
#define INTERFACE DETAIL
#export INTERFACE
#>

INTERFACE // ?

This is what I'm going to propose:

# region // unnamed
#    import ABC
#    define XYZ
#    define INTERFACE 123
#    export INTERFACE
# endreg

XYZ       // XYZ
INTERFACE // 123

# region BOOST
#    region DETAIL
#        define ABC 123
#    endreg
#    define INTERFACE BOOST::DETAIL::ABC
#    define OTHER 123
#    export OTHER
#    region A
#        define MACRO 123
#    endref
#    region B
#        define MACRO 123
#    endif
#    export A
# endreg

ABC              // ABC
DETAIL::ABC      // DETAIL::ABC
BOOST::INTERFACE // 123
OTHER            // 123

A::MACRO         // 123
B::MACRO         // B::MACRO

What do you think?

Paul Mensonides

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to