Add better exception reporting when incorrectly dereferencing an iterator.

This commit is contained in:
Jesse Beder
2013-04-12 23:41:02 -05:00
parent 097ac171c6
commit 434c6a5697
5 changed files with 121 additions and 12 deletions

View File

@@ -20,6 +20,7 @@ namespace YAML
public:
friend class NodeBuilder;
friend class NodeEvents;
friend struct detail::iterator_value;
friend class detail::node_data;
template<typename> friend class detail::iterator_base;
template<typename T, typename S> friend struct as_if;
@@ -85,6 +86,8 @@ namespace YAML
void force_insert(const Key& key, const Value& value);
private:
enum Zombie { ZombieNode };
explicit Node(Zombie);
explicit Node(detail::node& node, detail::shared_memory_holder pMemory);
void EnsureNodeExists() const;
@@ -97,6 +100,7 @@ namespace YAML
void AssignNode(const Node& rhs);
private:
bool m_isValid;
mutable detail::shared_memory_holder m_pMemory;
mutable detail::node *m_pNode;
};