Implemented is()

This commit is contained in:
beder
2011-09-07 14:46:25 -05:00
parent 980fb59d4b
commit 82fa4e71db
3 changed files with 10 additions and 2 deletions

View File

@@ -21,6 +21,8 @@ namespace YAML
node(): m_pRef(new node_ref) {}
ValueType::value type() const { return m_pRef->type(); }
bool is(const node& rhs) const { return m_pRef == rhs.m_pRef; }
void set_ref(const node& rhs) { m_pRef = rhs.m_pRef; }
void set_data(const node& rhs) { m_pRef->set_data(*rhs.m_pRef); }

View File

@@ -57,6 +57,11 @@ namespace YAML
}
// assignment
inline bool Value::is(const Value& rhs) const
{
return m_pNode->is(*rhs.m_pNode);
}
template<typename T>
inline Value& Value::operator=(const T& rhs)
{
@@ -88,7 +93,7 @@ namespace YAML
inline Value& Value::operator=(const Value& rhs)
{
if(is(*this, rhs))
if(is(rhs))
return *this;
AssignNode(rhs);
return *this;
@@ -213,7 +218,7 @@ namespace YAML
inline bool is(const Value& lhs, const Value& rhs)
{
return false;
return lhs.is(rhs);
}
}

View File

@@ -31,6 +31,7 @@ namespace YAML
template<typename T> const T as() const;
// assignment
bool is(const Value& rhs) const;
template<typename T> Value& operator=(const T& rhs);
Value& operator=(const Value& rhs);