std::vector items; std::vector tags; tags.push_back( Exiv2::ExifTags::ifdTagList() ); tags.push_back( Exiv2::ExifTags::exifTagList() ); tags.push_back( Exiv2::ExifTags::iopTagList() ); tags.push_back( Exiv2::ExifTags::gpsTagList() ); for (std::vector::iterator it = tags.begin(); it != tags.end(); ++it ) { while ( (*it)->tag_ != 0xffff ) { items.push_back( Exiv2::ExifKey( (*it)->tag_, Exiv2::ExifTags::ifdItem( (*it)->ifdId_ ) ).key() ); ++(*it); } }