Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-09-29 12:25:37

Joel de Guzman <joel_at_[hidden]> writes:

> To me it's like, generalizing that something with a wing,
> a propeller, and all things that comprise an airplane-- is an
> airplane. No, not necessarily. The presence of these elements
> do not complete the picture. It can be, say, *just a collection
> of parts*. Hence, pair<iterator,iterator> is just a collection
> of 2 iterators, nothing more.

External, non-intrusive, adaptation of a 3rd party type to make it
model a particular concept that it doesn't model "inherently" is a
fundamental generic programming maneuver. I don't see anything
particularly wrong with making a pair of iterators model Range.

Jeremy Siek has described cases to me wherein one type can play two
different roles with the *same* library. For that you need two
different concept maps, to map the type into its different roles.
Thus his recent "scoped concept_map" proposal.

> All that being said, I don't care too much either way. It's not
> a concern of Fusion, AFAICT. Unless, you are asking for std::pair
> to be removed from the list of supported Fusion sequences?

Nope. Just raising the point for discussion.

Dave Abrahams
Boost Consulting

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