Added emitting std::set (and refactored the stl emitters a bit)
This commit is contained in:
parent
9fbcfe9ec5
commit
4c3926a5c7
@ -8,32 +8,37 @@
|
|||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
#include <list>
|
#include <list>
|
||||||
|
#include <set>
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
namespace YAML
|
namespace YAML
|
||||||
{
|
{
|
||||||
template <typename T>
|
template<typename Seq>
|
||||||
inline Emitter& operator << (Emitter& emitter, const std::vector <T>& v) {
|
inline Emitter& EmitSeq(Emitter& emitter, const Seq& seq) {
|
||||||
typedef typename std::vector <T> vec;
|
|
||||||
emitter << BeginSeq;
|
emitter << BeginSeq;
|
||||||
for(typename vec::const_iterator it=v.begin();it!=v.end();++it)
|
for(typename Seq::const_iterator it=seq.begin();it!=seq.end();++it)
|
||||||
emitter << *it;
|
|
||||||
emitter << EndSeq;
|
|
||||||
return emitter;
|
|
||||||
}
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
inline Emitter& operator << (Emitter& emitter, const std::list <T>& v) {
|
|
||||||
typedef typename std::list <T> list;
|
|
||||||
emitter << BeginSeq;
|
|
||||||
for(typename list::const_iterator it=v.begin();it!=v.end();++it)
|
|
||||||
emitter << *it;
|
emitter << *it;
|
||||||
emitter << EndSeq;
|
emitter << EndSeq;
|
||||||
return emitter;
|
return emitter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline Emitter& operator << (Emitter& emitter, const std::vector<T>& v) {
|
||||||
|
return EmitSeq(emitter, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline Emitter& operator << (Emitter& emitter, const std::list<T>& v) {
|
||||||
|
return EmitSeq(emitter, v);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
inline Emitter& operator << (Emitter& emitter, const std::set<T>& v) {
|
||||||
|
return EmitSeq(emitter, v);
|
||||||
|
}
|
||||||
|
|
||||||
template <typename K, typename V>
|
template <typename K, typename V>
|
||||||
inline Emitter& operator << (Emitter& emitter, const std::map <K, V>& m) {
|
inline Emitter& operator << (Emitter& emitter, const std::map<K, V>& m) {
|
||||||
typedef typename std::map <K, V> map;
|
typedef typename std::map <K, V> map;
|
||||||
emitter << BeginMap;
|
emitter << BeginMap;
|
||||||
for(typename map::const_iterator it=m.begin();it!=m.end();++it)
|
for(typename map::const_iterator it=m.begin();it!=m.end();++it)
|
||||||
|
Loading…
Reference in New Issue
Block a user