|
Boost : |
From: MB (mb2act_at_[hidden])
Date: 2005-11-30 20:24:26
Hi,
David Abrahams wrote:
> MB <mb2act_at_[hidden]> writes:
>
>>Hi,
>>
>>This proposal is somewhat beyond the current Boost.Range.
>>I have been looking for "how to define compile-time polymorphism",
>>which Boost.Range and Boost.Serialization etc are combating.
>>
>>Motivation:
>> There is no conforming way of customization if you cannot
>> open namespaces that contain types you customize.
>>
>>New Implementation:
>> Provide a namespace for customization by using a type named 'overloaded'
>> that triggers intentional ADL on 2nd-phase lookup.
>> (This idea comes from Boost.Serialization.)
>
> It was considered already. Look for the use of the phrase "domain
> tag" in http://lists.boost.org/boost-users/2005/03/10346.php and
> following messages.
Mr.Dimov wrote at http://lists.boost.org/boost-users/2005/03/10349.php
>Maybe I'll just bite the bullet and start putting overloads
>in std instead one day.
I've fallen into the same situation.
As I'm afraid of opening namespaces like 'ATL',
the customization way is missing.
>>Question4:
>> This technique that triggers intentional ADL is famous?
>> What do they call? Who is the inventor?
>> Should I call "Ramey Lookup"?
>
> I think I may have invented the technique you're showing.
I call it "Abrahams Lookup" :-)
I thought the combination of your Lookup and Ramey Trick could
workaround broken compilers without users' burden.
But Boost.Range has metafunctions that require 'class template partial specialization'.
I have missed the point.
I admit that the combination is not generalized enough to bear with the extra parameter.
Regards,
MB
http://p-stade.sourceforge.net/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk