Removed comparison/implicit conversion operators for Node, and renamed Node::Read<T>() to Node::to<T>()

This commit is contained in:
Jesse Beder
2011-03-15 05:49:56 +00:00
parent 6152fb345e
commit ebdfeb0349
4 changed files with 312 additions and 378 deletions

View File

@@ -62,10 +62,7 @@ namespace YAML
bool Read(T& value) const;
template <typename T>
const T Read() const;
template <typename T>
operator T() const;
const T to() const;
template <typename T>
friend void operator >> (const Node& node, T& value);
@@ -127,24 +124,6 @@ namespace YAML
node_seq m_seqData;
node_map m_mapData;
};
// comparisons with auto-conversion
template <typename T>
bool operator == (const T& value, const Node& node);
template <typename T>
bool operator == (const Node& node, const T& value);
template <typename T>
bool operator != (const T& value, const Node& node);
template <typename T>
bool operator != (const Node& node, const T& value);
bool operator == (const char *value, const Node& node);
bool operator == (const Node& node, const char *value);
bool operator != (const char *value, const Node& node);
bool operator != (const Node& node, const char *value);
}
#include "yaml-cpp/nodeimpl.h"

View File

@@ -13,16 +13,11 @@ namespace YAML
{
// implementation of templated things
template <typename T>
inline const T Node::Read() const {
inline const T Node::to() const {
T value;
*this >> value;
return value;
}
template <typename T>
Node::operator T() const {
return Read<T>();
}
template <typename T>
inline void operator >> (const Node& node, T& value) {
@@ -77,43 +72,6 @@ namespace YAML
inline const Node& Node::operator [] (const char *key) const {
return GetValue(std::string(key));
}
template <typename T>
inline bool operator == (const T& value, const Node& node) {
return value == node.operator T();
}
template <typename T>
inline bool operator == (const Node& node, const T& value) {
return value == node.operator T();
}
template <typename T>
inline bool operator != (const T& value, const Node& node) {
return value != node.operator T();
}
template <typename T>
inline bool operator != (const Node& node, const T& value) {
return value != node.operator T();
}
inline bool operator == (const char *value, const Node& node) {
return std::string(value) == node;
}
inline bool operator == (const Node& node, const char *value) {
return std::string(value) == node;
}
inline bool operator != (const char *value, const Node& node) {
return std::string(value) != node;
}
inline bool operator != (const Node& node, const char *value) {
return std::string(value) != node;
}
}
#endif // NODEIMPL_H_62B23520_7C8E_11DE_8A39_0800200C9A66