[range] Inconsistent range_iterator metafunction

I note the following: typedef std::vector<int> vint; typedef int aint[4]; range_iterator<vint const>::type ==> std::vector<int>::iterator range_iterator<aint const>::type ==> int const* It seems like it should be range_iterator<vint const>::type ==> std::vector<int>::const_iterator I know we discussed this before. Thorsten, are you planning to make this change? -- Dave Abrahams Boost Consulting www.boost-consulting.com

Sorry for the late reply, but I keep getting my messages rejected when I use a different smpt-server. Very annoying.
It seems like it should be
range_iterator<vint const>::type ==> std::vector<int>::const_iterator
I know we discussed this before. Thorsten, are you planning to make this change?
yes, and many more. I do wonder how I should tacle the fact that the upgrade will break a lot of code. Maybe I should put the new version in different directory, say boost/range/new/... -Thorsten

Thorsten Ottosen wrote:
Sorry for the late reply, but I keep getting my messages rejected when I use a different smpt-server. Very annoying.
It seems like it should be
range_iterator<vint const>::type ==> std::vector<int>::const_iterator
I know we discussed this before. Thorsten, are you planning to make this change?
yes, and many more. I do wonder how I should tacle the fact that the upgrade will break a lot of code. Maybe I should put the new version in different directory, say boost/range/new/...
I suppose we ought to have standard guidance to authors on this, but the usual process goes something like: warn that the interface is deprecated, but maintain it for a release. Then remove it in a later release. If the changes are such that the new stuff cannot coexist with the old you might need to wrap the deprecated code in a macro and explain how to get the old interface during the interim... Jeff

Thorsten Ottosen <nesotto@cs.aau.dk> writes:
Sorry for the late reply, but I keep getting my messages rejected when I use a different smpt-server. Very annoying.
It seems like it should be
range_iterator<vint const>::type ==> std::vector<int>::const_iterator
I know we discussed this before. Thorsten, are you planning to make this change?
yes, and many more. I do wonder how I should tacle the fact that the upgrade will break a lot of code. Maybe I should put the new version in different directory, say boost/range/new/...
I think that's too likely to lead to ODR violations. If the old interface and the new one can't coexist seamlessly for a release you have to bite the bullet and break code. Cheers, Dave -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (3)
-
David Abrahams
-
Jeff Garland
-
Thorsten Ottosen