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 "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