|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2005-12-01 00:37:06
MB <mb2act_at_[hidden]> writes:
> 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" :-)
It's not original enough to warrant putting my name on it, and it
isn't good enough for me to be proud of. So maybe "MB 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.
You might see also
http://lists.boost.org/Archives/boost/2005/03/83124.php
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk