[gdal-dev] Use of C++ iterators in API
Even Rouault
even.rouault at spatialys.com
Wed Apr 11 05:40:34 PDT 2018
On mercredi 11 avril 2018 05:10:53 CEST Kurt Schwehr wrote:
> The auto&& is really confusing.
A experimentally working alternative with miminal use of '&' is
for( auto poLayer: poDS->GetLayers() ) <-- this is a plain OGRLayer*
{
for( auto& poFeature: *poLayer ) <-- this is a unique_ptr<OGRFeature> so needs to be obtained by reference (otherwise compiler complains about use of deleted function unique_ptr(const unique_ptr&) = delete
{
for( auto& oField: *poFeature ) <-- this is a OGRFeature::FieldValue object that has no copy constructor (intended, we don't want user to be able to instanciate standalone FieldValue)
Does that look better ?
In all those above cases, the auto could also be const'ified, so the stricter typing would be
for( const auto poLayer: poDS->GetLayers() )
{
for( const auto& poFeature: *poLayer )
{
for( const auto& oField: *poFeature )
Should we put that instead ?
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the gdal-dev
mailing list