$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Eric Friedman (ebf_at_[hidden])
Date: 2003-11-27 23:38:44
David Abrahams wrote:
> Eric Friedman <ebf_at_[hidden]> writes:
>
>
>>It seems to me the standard form of such a specialization would look
>>as follows:
>>
>>// ...at file scope...
>>namespace boost {
>>
>> template <>
>> struct has_nothrow_copy< myUDT >
>> : mpl::true_
>> {
>> };
>>
>>}
>>
>>The problem I see here is this approach (needlessly) forces MPL upon
>>the user.
>
>
> It's not needless. You're going to force *something* upon the user.
> Why not boost/mpl/bool.hpp?
>
But why? The type traits library should have nothing to do with MPL (at
least from a user's perspective).
>> 1) Provide a typedef of boost::mpl::true_ named boost::true_, or
>> perhaps boost::tt_true to keep it Type Traits-specific. (I suppose
>> we could do the same for false_.)
>
>
> What problem is this solving? Just that they don't have to write the
> letters "mpl"?
Yes. I believe it is confusing for a user who is seeking simply to
specialize a type trait to have to think about an unrelated library.
I think maybe we should have boost::integral_constant (a la TR1) instead
of boost::mpl::integral_c, boost::mpl::bool_, etc.
I do want to be reasonable though: this isn't a critical issue. It just
seems to me we'd want to clear it up now if possible so we aren't stuck
with it later.
Eric