Index: base/values.h |
diff --git a/base/values.h b/base/values.h |
index c5834070352156dca888de3529778a673c879a1f..83d046c7fea9530999b9d00fa3d1f2edcf44ec24 100644 |
--- a/base/values.h |
+++ b/base/values.h |
@@ -339,10 +339,12 @@ class BASE_EXPORT DictionaryValue : public Value { |
// YOU SHOULD ALWAYS USE THE XXXWithoutPathExpansion() APIs WITH THESE, NOT |
// THE NORMAL XXX() APIs. This makes sure things will work correctly if any |
// keys have '.'s in them. |
- class key_iterator |
+ class BASE_EXPORT key_iterator |
: private std::iterator<std::input_iterator_tag, const std::string> { |
public: |
- explicit key_iterator(ValueMap::const_iterator itr) { itr_ = itr; } |
+ explicit key_iterator(ValueMap::const_iterator itr); |
+ // Not explicit, because this is a copy constructor. |
+ key_iterator(const key_iterator& rhs); |
key_iterator operator++() { |
++itr_; |
return *this; |
@@ -360,10 +362,9 @@ class BASE_EXPORT DictionaryValue : public Value { |
// This class provides an iterator over both keys and values in the |
// dictionary. It can't be used to modify the dictionary. |
- class Iterator { |
+ class BASE_EXPORT Iterator { |
public: |
- explicit Iterator(const DictionaryValue& target) |
- : target_(target), it_(target.dictionary_.begin()) {} |
+ explicit Iterator(const DictionaryValue& target); |
bool HasNext() const { return it_ != target_.dictionary_.end(); } |
void Advance() { ++it_; } |