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
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