make alias assignment explicit
This commit is contained in:
parent
1b38ced175
commit
7542e04151
@ -239,11 +239,12 @@ inline void Node::Assign(char* rhs) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
inline Node& Node::operator=(const Node& rhs) {
|
inline Node& Node::operator=(const Node& rhs) {
|
||||||
if (!m_isValid || !rhs.m_isValid)
|
AssignData(rhs);
|
||||||
throw InvalidNode();
|
return *this;
|
||||||
if (is(rhs))
|
}
|
||||||
return *this;
|
|
||||||
AssignNode(rhs);
|
inline Node& Node::operator=(const NodeAlias& rhs) {
|
||||||
|
AssignNode(rhs.m_node);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -26,6 +26,7 @@ struct iterator_value;
|
|||||||
} // namespace YAML
|
} // namespace YAML
|
||||||
|
|
||||||
namespace YAML {
|
namespace YAML {
|
||||||
|
class YAML_CPP_API NodeAlias;
|
||||||
class YAML_CPP_API Node {
|
class YAML_CPP_API Node {
|
||||||
public:
|
public:
|
||||||
friend class NodeBuilder;
|
friend class NodeBuilder;
|
||||||
@ -81,6 +82,7 @@ class YAML_CPP_API Node {
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
Node& operator=(const T& rhs);
|
Node& operator=(const T& rhs);
|
||||||
Node& operator=(const Node& rhs);
|
Node& operator=(const Node& rhs);
|
||||||
|
Node& operator=(const NodeAlias& rhs);
|
||||||
void reset(const Node& rhs = Node());
|
void reset(const Node& rhs = Node());
|
||||||
|
|
||||||
// size/iterator
|
// size/iterator
|
||||||
@ -134,6 +136,14 @@ class YAML_CPP_API Node {
|
|||||||
mutable detail::node* m_pNode;
|
mutable detail::node* m_pNode;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class NodeAlias {
|
||||||
|
friend class Node;
|
||||||
|
public:
|
||||||
|
NodeAlias(const Node& node) : m_node(node) {}
|
||||||
|
private:
|
||||||
|
const Node& m_node;
|
||||||
|
};
|
||||||
|
|
||||||
YAML_CPP_API bool operator==(const Node& lhs, const Node& rhs);
|
YAML_CPP_API bool operator==(const Node& lhs, const Node& rhs);
|
||||||
|
|
||||||
YAML_CPP_API Node Clone(const Node& node);
|
YAML_CPP_API Node Clone(const Node& node);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user