@@ -35,6 +35,157 @@ class property_list {
3535 typedef typename value_container_type::iterator value_iterator;
3636 typedef typename value_container_type::const_iterator value_const_iterator;
3737
38+ // Static factory methods
39+ static this_type of (const KeyType& k1, const ValueType& v1) {
40+ this_type result;
41+ result.put (k1, v1);
42+ return result;
43+ }
44+
45+ static this_type of (const KeyType& k1, const ValueType& v1,
46+ const KeyType& k2, const ValueType& v2) {
47+ this_type result;
48+ result.put (k1, v1);
49+ result.put (k2, v2);
50+ return result;
51+ }
52+
53+ static this_type of (const KeyType& k1, const ValueType& v1,
54+ const KeyType& k2, const ValueType& v2,
55+ const KeyType& k3, const ValueType& v3) {
56+ this_type result;
57+ result.put (k1, v1);
58+ result.put (k2, v2);
59+ result.put (k3, v3);
60+ return result;
61+ }
62+
63+ static this_type of (const KeyType& k1, const ValueType& v1,
64+ const KeyType& k2, const ValueType& v2,
65+ const KeyType& k3, const ValueType& v3,
66+ const KeyType& k4, const ValueType& v4) {
67+ this_type result;
68+ result.put (k1, v1);
69+ result.put (k2, v2);
70+ result.put (k3, v3);
71+ result.put (k4, v4);
72+ return result;
73+ }
74+
75+ static this_type of (const KeyType& k1, const ValueType& v1,
76+ const KeyType& k2, const ValueType& v2,
77+ const KeyType& k3, const ValueType& v3,
78+ const KeyType& k4, const ValueType& v4,
79+ const KeyType& k5, const ValueType& v5) {
80+ this_type result;
81+ result.put (k1, v1);
82+ result.put (k2, v2);
83+ result.put (k3, v3);
84+ result.put (k4, v4);
85+ result.put (k5, v5);
86+ return result;
87+ }
88+
89+ static this_type of (const KeyType& k1, const ValueType& v1,
90+ const KeyType& k2, const ValueType& v2,
91+ const KeyType& k3, const ValueType& v3,
92+ const KeyType& k4, const ValueType& v4,
93+ const KeyType& k5, const ValueType& v5,
94+ const KeyType& k6, const ValueType& v6) {
95+ this_type result;
96+ result.put (k1, v1);
97+ result.put (k2, v2);
98+ result.put (k3, v3);
99+ result.put (k4, v4);
100+ result.put (k5, v5);
101+ result.put (k6, v6);
102+ return result;
103+ }
104+
105+ static this_type of (const KeyType& k1, const ValueType& v1,
106+ const KeyType& k2, const ValueType& v2,
107+ const KeyType& k3, const ValueType& v3,
108+ const KeyType& k4, const ValueType& v4,
109+ const KeyType& k5, const ValueType& v5,
110+ const KeyType& k6, const ValueType& v6,
111+ const KeyType& k7, const ValueType& v7) {
112+ this_type result;
113+ result.put (k1, v1);
114+ result.put (k2, v2);
115+ result.put (k3, v3);
116+ result.put (k4, v4);
117+ result.put (k5, v5);
118+ result.put (k6, v6);
119+ result.put (k7, v7);
120+ return result;
121+ }
122+
123+ static this_type of (const KeyType& k1, const ValueType& v1,
124+ const KeyType& k2, const ValueType& v2,
125+ const KeyType& k3, const ValueType& v3,
126+ const KeyType& k4, const ValueType& v4,
127+ const KeyType& k5, const ValueType& v5,
128+ const KeyType& k6, const ValueType& v6,
129+ const KeyType& k7, const ValueType& v7,
130+ const KeyType& k8, const ValueType& v8) {
131+ this_type result;
132+ result.put (k1, v1);
133+ result.put (k2, v2);
134+ result.put (k3, v3);
135+ result.put (k4, v4);
136+ result.put (k5, v5);
137+ result.put (k6, v6);
138+ result.put (k7, v7);
139+ result.put (k8, v8);
140+ return result;
141+ }
142+
143+ static this_type of (const KeyType& k1, const ValueType& v1,
144+ const KeyType& k2, const ValueType& v2,
145+ const KeyType& k3, const ValueType& v3,
146+ const KeyType& k4, const ValueType& v4,
147+ const KeyType& k5, const ValueType& v5,
148+ const KeyType& k6, const ValueType& v6,
149+ const KeyType& k7, const ValueType& v7,
150+ const KeyType& k8, const ValueType& v8,
151+ const KeyType& k9, const ValueType& v9) {
152+ this_type result;
153+ result.put (k1, v1);
154+ result.put (k2, v2);
155+ result.put (k3, v3);
156+ result.put (k4, v4);
157+ result.put (k5, v5);
158+ result.put (k6, v6);
159+ result.put (k7, v7);
160+ result.put (k8, v8);
161+ result.put (k9, v9);
162+ return result;
163+ }
164+
165+ static this_type of (const KeyType& k1, const ValueType& v1,
166+ const KeyType& k2, const ValueType& v2,
167+ const KeyType& k3, const ValueType& v3,
168+ const KeyType& k4, const ValueType& v4,
169+ const KeyType& k5, const ValueType& v5,
170+ const KeyType& k6, const ValueType& v6,
171+ const KeyType& k7, const ValueType& v7,
172+ const KeyType& k8, const ValueType& v8,
173+ const KeyType& k9, const ValueType& v9,
174+ const KeyType& k10, const ValueType& v10) {
175+ this_type result;
176+ result.put (k1, v1);
177+ result.put (k2, v2);
178+ result.put (k3, v3);
179+ result.put (k4, v4);
180+ result.put (k5, v5);
181+ result.put (k6, v6);
182+ result.put (k7, v7);
183+ result.put (k8, v8);
184+ result.put (k9, v9);
185+ result.put (k10, v10);
186+ return result;
187+ }
188+
38189 property_list () : dirty_keys_(false ) {}
39190
40191 property_list (const property_list &src):
0 commit comments