Added explicit conversion from an iterator value to a Node. This conversion was always allowed (since the iterator value is derived from Node, but since Node has a templated constructor, that would take precedence over the derived-to-base conversion. This didn't seem to be a problem in gcc or clang, but MSVC seems to have trouble. (new API)

This commit is contained in:
beder
2012-01-11 13:58:18 -06:00
parent d2f5a6086a
commit 537063f907
2 changed files with 5 additions and 0 deletions

View File

@@ -29,6 +29,10 @@ namespace YAML
Assign(rhs); Assign(rhs);
} }
inline Node::Node(const detail::iterator_value& rhs): m_pMemory(rhs.m_pMemory), m_pNode(rhs.m_pNode)
{
}
inline Node::Node(const Node& rhs): m_pMemory(rhs.m_pMemory), m_pNode(rhs.m_pNode) inline Node::Node(const Node& rhs): m_pMemory(rhs.m_pMemory), m_pNode(rhs.m_pNode)
{ {
} }

View File

@@ -26,6 +26,7 @@ namespace YAML
Node(); Node();
explicit Node(NodeType::value type); explicit Node(NodeType::value type);
template<typename T> explicit Node(const T& rhs); template<typename T> explicit Node(const T& rhs);
explicit Node(const detail::iterator_value& rhs);
Node(const Node& rhs); Node(const Node& rhs);
~Node(); ~Node();