mirror of
				https://github.com/jbeder/yaml-cpp.git
				synced 2025-11-03 17:41:53 +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 <map>
 | 
			
		||||
#include <sstream>
 | 
			
		||||
 | 
			
		||||
namespace YAML
 | 
			
		||||
@@ -61,6 +62,21 @@ namespace YAML
 | 
			
		||||
	YAML_DEFINE_CONVERT_STREAMABLE(long double);
 | 
			
		||||
	
 | 
			
		||||
#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
 | 
			
		||||
 
 | 
			
		||||
@@ -2,13 +2,4 @@
 | 
			
		||||
 | 
			
		||||
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 <map>
 | 
			
		||||
 | 
			
		||||
int main()
 | 
			
		||||
{
 | 
			
		||||
@@ -12,5 +13,12 @@ int main()
 | 
			
		||||
	value["monkey"] = 5;
 | 
			
		||||
	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;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user