mirror of
https://github.com/jbeder/yaml-cpp.git
synced 2025-09-10 04:51:17 +00:00
Added half of the std::map conversion (we don't have reading from Values yet)
This commit is contained in:
@@ -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
|
|||||||
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 @@
|
|||||||
|
|
||||||
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;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
#include "yaml-cpp/value.h"
|
#include "yaml-cpp/value.h"
|
||||||
|
#include <map>
|
||||||
|
|
||||||
int main()
|
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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user