$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Paul Mensonides (pmenso57_at_[hidden])
Date: 2003-04-12 19:34:44
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