3 #ifndef INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_ 4 #define INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_ 19 bool Gen(Nlist<T>* v)
const {
20 return v->push_back(
false) && v->push_back(
true);
24 ValuesBool& operator=(
const ValuesBool&);
27 template <
class C,
size_t N>
30 explicit ValuesInObjArray(
const C (&a)[N]) : array_(a) {}
33 bool Gen(Nlist<T>* v)
const {
34 for (
size_t i = 0; i < N; ++i) {
35 if (!v->push_back(array_[i]))
return false;
42 ValuesInObjArray& operator=(
const ValuesInObjArray&);
48 explicit ValuesInObjContainer(
const C& c) : container_(&c) {}
51 bool Gen(Nlist<T>* v)
const {
52 typename C::const_iterator it = container_->begin();
53 typename C::const_iterator end = container_->end();
54 for (; it != end; ++it) {
55 if (!v->push_back(*it))
return false;
62 ValuesInObjContainer& operator=(
const ValuesInObjContainer&);
65 template <
class Iterator>
68 ValuesInObjIterator(Iterator first, Iterator last) : first_(first), last_(last) {}
71 bool Gen(Nlist<T>* v)
const {
73 for (; it != last_; ++it) {
74 if (!v->push_back(*it))
return false;
82 ValuesInObjIterator& operator=(
const ValuesInObjIterator&);
85 template <
class T1,
class T2>
88 ValuesRange(T1 first, T1 last, T2 step) : first_(first), last_(last), step_(step) {}
91 bool Gen(Nlist<T>* v)
const;
97 ValuesRange& operator=(
const ValuesRange&);
100 template <
class T1,
class T2>
102 bool ValuesRange<T1, T2>::Gen(Nlist<T>* v)
const {
110 while (first < last) {
111 if (!v->push_back(first))
return false;
112 first = first + step;
119 typedef Values1 SelfType;
122 explicit Values1(T1 v1) : v1_(v1) {}
125 bool Gen(Nlist<T>* v)
const {
126 return v->push_back(v1_) != NULL;
131 SelfType& operator=(
const SelfType&);
134 template <
class T1,
class T2>
136 typedef Values2 SelfType;
139 Values2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {}
142 bool Gen(Nlist<T>* v)
const {
143 return v->push_back(v1_) != NULL &&
144 v->push_back(v2_) != NULL;
150 SelfType& operator=(
const SelfType&);
153 template <
class T1,
class T2,
class T3>
155 typedef Values3 SelfType;
158 Values3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {}
161 bool Gen(Nlist<T>* v)
const {
162 return v->push_back(v1_) != NULL &&
163 v->push_back(v2_) != NULL &&
164 v->push_back(v3_) != NULL;
171 SelfType& operator=(
const SelfType&);
174 template <
class T1,
class T2,
class T3,
class T4>
176 typedef Values4 SelfType;
179 Values4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3), v4_(v4) {}
182 bool Gen(Nlist<T>* v)
const {
183 return v->push_back(v1_) != NULL &&
184 v->push_back(v2_) != NULL &&
185 v->push_back(v3_) != NULL &&
186 v->push_back(v4_) != NULL;
194 SelfType& operator=(
const SelfType&);
197 template <
class T1,
class T2,
class T3,
class T4,
class T5>
199 typedef Values5 SelfType;
202 Values5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5) {}
205 bool Gen(Nlist<T>* v)
const {
206 return v->push_back(v1_) != NULL &&
207 v->push_back(v2_) != NULL &&
208 v->push_back(v3_) != NULL &&
209 v->push_back(v4_) != NULL &&
210 v->push_back(v5_) != NULL;
219 SelfType& operator=(
const SelfType&);
222 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
224 typedef Values6 SelfType;
227 Values6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6)
228 : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6) {}
231 bool Gen(Nlist<T>* v)
const {
232 return v->push_back(v1_) != NULL &&
233 v->push_back(v2_) != NULL &&
234 v->push_back(v3_) != NULL &&
235 v->push_back(v4_) != NULL &&
236 v->push_back(v5_) != NULL &&
237 v->push_back(v6_) != NULL;
247 SelfType& operator=(
const SelfType&);
250 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7>
252 typedef Values7 SelfType;
255 Values7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7)
256 : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {}
259 bool Gen(Nlist<T>* v)
const {
260 return v->push_back(v1_) != NULL &&
261 v->push_back(v2_) != NULL &&
262 v->push_back(v3_) != NULL &&
263 v->push_back(v4_) != NULL &&
264 v->push_back(v5_) != NULL &&
265 v->push_back(v6_) != NULL &&
266 v->push_back(v7_) != NULL;
277 SelfType& operator=(
const SelfType&);
280 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8>
282 typedef Values8 SelfType;
285 Values8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
286 : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8) {}
289 bool Gen(Nlist<T>* v)
const {
290 return v->push_back(v1_) != NULL &&
291 v->push_back(v2_) != NULL &&
292 v->push_back(v3_) != NULL &&
293 v->push_back(v4_) != NULL &&
294 v->push_back(v5_) != NULL &&
295 v->push_back(v6_) != NULL &&
296 v->push_back(v7_) != NULL &&
297 v->push_back(v8_) != NULL;
309 SelfType& operator=(
const SelfType&);
312 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8,
class T9>
314 typedef Values9 SelfType;
317 Values9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
329 bool Gen(Nlist<T>* v)
const {
330 return v->push_back(v1_) != NULL &&
331 v->push_back(v2_) != NULL &&
332 v->push_back(v3_) != NULL &&
333 v->push_back(v4_) != NULL &&
334 v->push_back(v5_) != NULL &&
335 v->push_back(v6_) != NULL &&
336 v->push_back(v7_) != NULL &&
337 v->push_back(v8_) != NULL &&
338 v->push_back(v9_) != NULL;
351 SelfType& operator=(
const SelfType&);
354 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8,
class T9,
357 typedef Values10 SelfType;
360 Values10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
373 bool Gen(Nlist<T>* v)
const {
374 return v->push_back(v1_) != NULL &&
375 v->push_back(v2_) != NULL &&
376 v->push_back(v3_) != NULL &&
377 v->push_back(v4_) != NULL &&
378 v->push_back(v5_) != NULL &&
379 v->push_back(v6_) != NULL &&
380 v->push_back(v7_) != NULL &&
381 v->push_back(v8_) != NULL &&
382 v->push_back(v9_) != NULL &&
383 v->push_back(v10_) != NULL;
397 SelfType& operator=(
const SelfType&);
404 #endif // INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_ std::unique_ptrに相当するクラスが定義されています。
std::vectorに似ていますが、コピーできないオブジェクトを格納可能なクラスが定義されています。 ...
#define NLIB_FINAL
利用可能であればfinalが定義されます。そうでない場合は空文字列です。