"git@developer.sourcefind.cn:OpenDAS/megatron-lm.git" did not exist on "5478d67ef2048481e651a05053487fba029c3210"
Commit 6ffc9ac7 authored by Jesse Beder's avatar Jesse Beder
Browse files

Added half of the std::map conversion (we don't have reading from Values yet)

parent 0e197b87
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "yaml-cpp/value/value.h" #include "yaml-cpp/value/value.h"
#include <map>
#include <sstream> #include <sstream>
namespace YAML namespace YAML
...@@ -61,6 +62,21 @@ namespace YAML ...@@ -61,6 +62,21 @@ namespace YAML
YAML_DEFINE_CONVERT_STREAMABLE(long double); YAML_DEFINE_CONVERT_STREAMABLE(long double);
#undef YAML_DEFINE_CONVERT_STREAMABLE #undef YAML_DEFINE_CONVERT_STREAMABLE
template<typename K, typename V>
struct convert<std::map<K, V> > {
static Value encode(const std::map<K, V>& rhs) {
Value value(ValueType::Map);
for(typename std::map<K, V>::const_iterator it=rhs.begin();it!=rhs.end();++it)
value[it->first] = it->second;
return value;
}
static bool decode(const Value& value, std::map<K, V>& rhs) {
rhs.clear();
return false;
}
};
} }
#endif // VALUE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66 #endif // VALUE_CONVERT_H_62B23520_7C8E_11DE_8A39_0800200C9A66
...@@ -2,13 +2,4 @@ ...@@ -2,13 +2,4 @@
namespace YAML namespace YAML
{ {
//
// template<typename K, typename V>
// Value convert<std::map<K, V> >(const std::map<K, V>& rhs) {
// Value value(ValueType::Map);
// for(std::map<K, V>::const_iterator it=rhs.begin();it!=rhs.end();++it)
// value[it->first] = it->second;
// return value;
// }
} }
#include "yaml-cpp/value.h" #include "yaml-cpp/value.h"
#include <map>
int main() int main()
{ {
...@@ -12,5 +13,12 @@ int main() ...@@ -12,5 +13,12 @@ int main()
value["monkey"] = 5; value["monkey"] = 5;
std::cout << value["monkey"].as<int>() << "\n"; std::cout << value["monkey"].as<int>() << "\n";
std::map<int, std::string> names;
names[1] = "one";
names[2] = "two";
names[3] = "three";
names[4] = "four";
value["names"] = names;
return 0; return 0;
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment