From: David Abrahams (dave_at_[hidden])
Date: 2005-12-01 00:37:06
MB <mb2act_at_[hidden]> writes:
> David Abrahams wrote:
>> MB <mb2act_at_[hidden]> writes:
>>>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.
>>> There is no conforming way of customization if you cannot
>>> open namespaces that contain types you customize.
>>> 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.
>>> 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
-- 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