diff --git a/libqpdf/qpdf/QPDFObjectHandle_private.hh b/libqpdf/qpdf/QPDFObjectHandle_private.hh index d55cd78..f4b99ac 100644 --- a/libqpdf/qpdf/QPDFObjectHandle_private.hh +++ b/libqpdf/qpdf/QPDFObjectHandle_private.hh @@ -42,6 +42,84 @@ namespace qpdf class BaseDictionary: public BaseHandle { public: + using iterator = std::map::iterator; + using const_iterator = std::map::const_iterator; + using reverse_iterator = std::map::reverse_iterator; + using const_reverse_iterator = + std::map::const_reverse_iterator; + + iterator + begin() + { + if (auto d = as()) { + return d->items.begin(); + } + return {}; + } + + iterator + end() + { + if (auto d = as()) { + return d->items.end(); + } + return {}; + } + + const_iterator + cbegin() + { + if (auto d = as()) { + return d->items.cbegin(); + } + return {}; + } + + const_iterator + cend() + { + if (auto d = as()) { + return d->items.cend(); + } + return {}; + } + + reverse_iterator + rbegin() + { + if (auto d = as()) { + return d->items.rbegin(); + } + return {}; + } + + reverse_iterator + rend() + { + if (auto d = as()) { + return d->items.rend(); + } + return {}; + } + + const_reverse_iterator + crbegin() + { + if (auto d = as()) { + return d->items.crbegin(); + } + return {}; + } + + const_reverse_iterator + crend() + { + if (auto d = as()) { + return d->items.crend(); + } + return {}; + } + // The following methods are not part of the public API. bool hasKey(std::string const& key) const; QPDFObjectHandle getKey(std::string const& key) const;