common: win32utils - compile fix
[supercollider.git] / external_libraries / yaml-cpp-0.2.6 / include / yaml-cpp / stlemitter.h
blob1b5d86493dec2389b92dd1fcf9f44d64acc5be17
1 #ifndef STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
2 #define STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66
4 #if !defined(__GNUC__) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || (__GNUC__ >= 4) // GCC supports "pragma once" correctly since 3.4
5 #pragma once
6 #endif
9 #include <vector>
10 #include <list>
11 #include <map>
13 namespace YAML
15 template <typename T>
16 inline Emitter& operator << (Emitter& emitter, const std::vector <T>& v) {
17 typedef typename std::vector <T> vec;
18 emitter << BeginSeq;
19 for(typename vec::const_iterator it=v.begin();it!=v.end();++it)
20 emitter << *it;
21 emitter << EndSeq;
22 return emitter;
25 template <typename T>
26 inline Emitter& operator << (Emitter& emitter, const std::list <T>& v) {
27 typedef typename std::list <T> list;
28 emitter << BeginSeq;
29 for(typename list::const_iterator it=v.begin();it!=v.end();++it)
30 emitter << *it;
31 emitter << EndSeq;
32 return emitter;
35 template <typename K, typename V>
36 inline Emitter& operator << (Emitter& emitter, const std::map <K, V>& m) {
37 typedef typename std::map <K, V> map;
38 emitter << BeginMap;
39 for(typename map::const_iterator it=m.begin();it!=m.end();++it)
40 emitter << Key << it->first << Value << it->second;
41 emitter << EndMap;
42 return emitter;
46 #endif // STLEMITTER_H_62B23520_7C8E_11DE_8A39_0800200C9A66