What should be the return type for a function that returns an adapted range? E.g.
template<class Range>
xxx getIndirected( const Range& r ) {
return r | boost::adaptors::indirected;
}
The use case being, providing a API with these little useful helpers without forcing the user to know about Boost.Range at all. Like so:
#include <myapi.hpp>
#include <boost/foreach.hpp>
LegacyPointerContainers f; // contains Foo pointers
BOOST_FOREACH( Foo& f, TraverseFoo( f ) ) {
}
/// where in myapi.hpp
xxx TraverseFoo( LegacyPointerContainers& f ) { return getIndirected( makeRange(f) ) ; }
PS: This is all C++03. No autos.
Thanks
Nick