$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] review request: addition to type_traits library ofhas_operator_xxx
From: Edward Diener (eldiener_at_[hidden])
Date: 2010-11-18 00:52:56
On 11/17/2010 8:59 PM, Nevin Liber wrote:
> On 17 November 2010 16:23, Edward Diener<eldiener_at_[hidden]> wrote:
>
>> Alternatively I could even see putting all the operator traits in their own
>> namespace of 'boost::operators', dropping the 'operator_' in their name, and
>> allowing the end-user to surface them to just the 'boost' namespace via a
>> using declaration as they like. But then again, I am a very strong supporter
>> of namespaces and allowing the end-user to expose what they want from
>> namespaces via 'using'.
>>
>
> The problem, of course, is when you need them in a header, where using
> declarations cannot be scoped. This makes Boost.Multi-index a bit
> unwieldly, for example.
You are right about using directives but, I believe, it would always be
possible to provide a header with using declarations for
boost::operators which, when included, could bring them directly into
the boost namespace if so desired. As a simple example:
namespace XX
{
void AFunction();
}
namespace YY
{
using XX::AFunction;
}
One can now refer to YY::AFunction() from some source code. I have
'hoisted' XX::AFunction() into another namespace so to speak.
>
> I really don't mind if it gets spelled with namespaces instead of
> underscores, but a using declaration is not a motivation for it.
OK. But I prefer namespaces rather than decorating names with some
common 'prefix' to show commonality. I personally believe as an end-user
that there is the tendency to pile too much directly into the boost
namespace.