SST/macro
container.h
Go to the documentation of this file.
1 #ifndef CONTAINER_H
2 #define CONTAINER_H
3 
4 #include <map>
5 #include <vector>
6 #include <sprockit/test/assert.h>
7 
8 template <class K, class V>
9 class kv
10 {
11  public:
12  kv(const K& k, const V& v)
13  : key(k), value(v) {
14  }
15 
16  K key;
17  V value;
18 };
19 
20 
21 template <class C, class A>
23 {
24  public:
25  static void
26  append(C& c, const A& a) {
28  }
29 };
30 
31 template <class T, class A>
32 class ContainerAppend<std::vector<T>, A>
33 {
34  public:
35  static void
36  append(std::vector<T>& t, const A& a) {
37  t.push_back(a);
38  }
39 };
40 
41 template <class K, class V>
42 class ContainerAppend<std::map<K,V>, kv<K,V> >
43 {
44  public:
45  static void
46  append(std::map<K,V>& m, const kv<K,V>& pair) {
47  m[pair.key] = pair.value;
48  }
49 };
50 
51 
52 template <class C, class A>
53 void fillContainer(C& t, A& a1)
54 {
56 }
57 
58 template <class C, class A>
59 void fillContainer(C& t, const A& a1, const A& a2)
60 {
63 }
64 
65 template <class C, class A>
66 void fillContainer(C& t, const A& a1, const A& a2, const A& a3)
67 {
71 }
72 
73 template <class C, class A>
74 void fillContainer(C& t, const A& a1, const A& a2, const A& a3, const A& a4)
75 {
80 }
81 
82 template <class C, class A>
83 void fillContainer(C& t, const A& a1, const A& a2, const A& a3, const A& a4,
84  const A& a5)
85 {
91 }
92 
93 template <class C, class A>
94 void fillContainer(C& t, A& a1, A& a2, A& a3, A& a4, A& a5, A& a6)
95 {
102 }
103 
104 
105 #endif // CONTAINER_H
106 
static void append(C &c, const A &a)
Definition: container.h:26
void invalidContainer(const T &t)
Definition: assert.h:16
V value
Definition: container.h:17
K key
Definition: container.h:16
kv(const K &k, const V &v)
Definition: container.h:12
Definition: container.h:9
void fillContainer(C &t, A &a1)
Definition: container.h:53
static void append(std::vector< T > &t, const A &a)
Definition: container.h:36
static void append(std::map< K, V > &m, const kv< K, V > &pair)
Definition: container.h:46