$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2000-11-12 12:47:59
Beman Dawes wrote:
>
> In the past we have used a number of macro names, always prefixed by
> BOOST_.
>
> Examples are multiple inclusion guards like BOOST_CONFIG_HPP or
> configuration artifacts like BOOST_NO_MEMBER_TEMPLATES.
> BOOST_STATIC_ASSERT( a == b );
Thus, we seem to have three classes of macros now:
- Internal include guards, (_HPP suffix)
- Internal configuration (mostly non-function-like)
- Public (mostly function-like) macros
> My question then is, "What should be the form of boost public interface
> macro names?"
> My worry is that the all uppercase, prefixed by BOOST_ rule produces names
> ugly enough that programmers will shy away from using them. Is there
> another scheme that is less ugly, but still unlikely to produce name
> conflicts?
I do not think so. Macro names are global, so we have to prefix
some kind of namespace identifier to reserve a "local" namespace.
I prefer the prefix BOOST_ to any abbreviation such as BST_.
> Maybe I'm the only one that worries about public interface macro names, but
> I'd like to someone else can come up with a better scheme before we commit
> ourselves to names that are likely to be around for many years.
I think BOOST_STATIC_ASSERT is as nice as we can get with our current
nicely non-imperialist put-everything-in-a-namespace approach. C++ is
a bit more verbose in general anyway, so users should not be alienated by
a slightly more lengthy macro name. Oh, and I want to have all macros
ALL_UPPERCASE.
However, we may want to reconsider our internal configuration macro names,
for example prefix them with BOOST_CONFIG_ or so, to make sure we can always
choose the most obvious name for public macros.
Jens Maurer