Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-09-29 12:10:19

David Abrahams wrote:
> Joel de Guzman <joel_at_[hidden]> writes:
>> Here's another problem:
>> std::map<int*, int*> m;
>> generic code that treats pair<int* int*> as an iterator_range
>> will treat m's data type incorrectly.
> No, generic code doesn't look at types and say, "which of two concepts
> with no refinement relationship does this type fulfill?" and then take
> different actions based on the answer.

Sometimes it does. Consider serialization, or stream output. You could have

if( type is a range )

    output sequence of values


    output something else

Treating pair<pointer, pointer> as a range creates an ambiguity here.

Boost list run by bdawes at, gregod at, cpdaniel at, john at