Boost logo

Boost :

Subject: [boost] "protected" APIs
From: Lorenzo Caminiti (lorcaminiti_at_[hidden])
Date: 2012-01-02 04:25:49


Hello all,

Boost.Closure (formerly, Boost.Local) needs to use some macros, types,
etc that are currently marked private in Boost.ScopeExit:

BOOST_SCOPE_EXIT_AUX_TAG
boost::scope_exit::aux::undeclared
...

So I will move these symbols from AUX/aux to another prefix/namespace.
How shall the new prefix/namespace be named?

These symbols should not go into the public API of ScopeExit because
they should never be used by the end user. These symbols are only
meant to be used by other parts of Boost so they should use some sort
of "protected" prefix/namespace. For example, I could use "detail":
"aux" for ScopeExit private API and "detail" for ScopeExit API that
can be used within Boost but not by general users:

BOOST_SCOPE_EXIT_DETAIL_TAG
boost::scope_exit::detail::undeclared

However, other Boost components already use "detail" for their private
API (synonymous of "aux"). So, I could use "protected" instead:

BOOST_SCOPE_EXIT_PROTECTED_TAG
boost::scope_exit::protected_::undeclared

What's the best convention to follow here?

Thanks a lot.
--Lorenzo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk