3 #ifndef INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_
4 #define INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_
19 std::vector<T>* Gen()
const {
20 bool a[] = {
false,
true};
21 return new std::vector<T>(&a[0], &a[0] + 2);
25 ValuesBool& operator=(
const ValuesBool&);
28 template <
class C,
size_t N>
31 explicit ValuesInObjArray(
const C (&a)[N]) : m_Array(a) {}
34 std::vector<T>* Gen()
const {
35 return new std::vector<T>(&m_Array[0], &m_Array[0] + N);
39 const C (&m_Array)[N];
40 ValuesInObjArray& operator=(
const ValuesInObjArray&);
46 explicit ValuesInObjContainer(
const C& c) : m_Container(&c) {}
49 std::vector<T>* Gen()
const {
50 return new std::vector<T>(m_Container->begin(), m_Container->end());
55 ValuesInObjContainer& operator=(
const ValuesInObjContainer&);
58 template <
class Iterator>
61 ValuesInObjIterator(Iterator first, Iterator last) : m_First(first), m_Last(last) {}
64 std::vector<T>* Gen()
const {
65 return new std::vector<T>(m_First, m_Last);
71 ValuesInObjIterator& operator=(
const ValuesInObjIterator&);
74 template <
class T1,
class T2>
77 ValuesRange(T1 first, T1 last, T2 step) : m_First(first), m_Last(last), m_Step(step) {}
80 std::vector<T>* Gen()
const;
86 ValuesRange& operator=(
const ValuesRange&);
89 template <
class T1,
class T2>
91 std::vector<T>* ValuesRange<T1, T2>::Gen()
const {
108 UniquePtr<std::vector<T> > vec(
new std::vector<T>(N));
111 while (first < last) {
113 first = first + step;
117 return vec.release();
122 typedef Values1 SelfType;
125 explicit Values1(T1 v1) : m_V1(v1) {}
128 std::vector<T>* Gen()
const {
130 return new std::vector<T>(&a[0], &a[0] + 1);
135 SelfType& operator=(
const SelfType&);
138 template <
class T1,
class T2>
140 typedef Values2 SelfType;
143 Values2(T1 v1, T2 v2) : m_V1(v1), m_V2(v2) {}
146 std::vector<T>* Gen()
const {
147 T a[] = {m_V1, m_V2};
148 return new std::vector<T>(&a[0], &a[0] + 2);
154 SelfType& operator=(
const SelfType&);
157 template <
class T1,
class T2,
class T3>
159 typedef Values3 SelfType;
162 Values3(T1 v1, T2 v2, T3 v3) : m_V1(v1), m_V2(v2), m_V3(v3) {}
165 std::vector<T>* Gen()
const {
166 T a[] = {m_V1, m_V2, m_V3};
167 return new std::vector<T>(&a[0], &a[0] + 3);
174 SelfType& operator=(
const SelfType&);
177 template <
class T1,
class T2,
class T3,
class T4>
179 typedef Values4 SelfType;
182 Values4(T1 v1, T2 v2, T3 v3, T4 v4) : m_V1(v1), m_V2(v2), m_V3(v3), m_V4(v4) {}
185 std::vector<T>* Gen()
const {
186 T a[] = {m_V1, m_V2, m_V3, m_V4};
187 return new std::vector<T>(&a[0], &a[0] + 4);
195 SelfType& operator=(
const SelfType&);
198 template <
class T1,
class T2,
class T3,
class T4,
class T5>
200 typedef Values5 SelfType;
203 Values5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : m_V1(v1), m_V2(v2), m_V3(v3), m_V4(v4), m_V5(v5) {}
206 std::vector<T>* Gen()
const {
207 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5};
208 return new std::vector<T>(&a[0], &a[0] + 5);
217 SelfType& operator=(
const SelfType&);
220 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6>
222 typedef Values6 SelfType;
225 Values6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6)
226 : m_V1(v1), m_V2(v2), m_V3(v3), m_V4(v4), m_V5(v5), m_V6(v6) {}
229 std::vector<T>* Gen()
const {
230 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5, m_V6};
231 return new std::vector<T>(&a[0], &a[0] + 6);
241 SelfType& operator=(
const SelfType&);
244 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7>
246 typedef Values7 SelfType;
249 Values7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7)
250 : m_V1(v1), m_V2(v2), m_V3(v3), m_V4(v4), m_V5(v5), m_V6(v6), m_V7(v7) {}
253 std::vector<T>* Gen()
const {
254 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5, m_V6, m_V7};
255 return new std::vector<T>(&a[0], &a[0] + 7);
266 SelfType& operator=(
const SelfType&);
269 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8>
271 typedef Values8 SelfType;
274 Values8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8)
275 : m_V1(v1), m_V2(v2), m_V3(v3), m_V4(v4), m_V5(v5), m_V6(v6), m_V7(v7), m_V8(v8) {}
278 std::vector<T>* Gen()
const {
279 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5, m_V6, m_V7, m_V8};
280 return new std::vector<T>(&a[0], &a[0] + 8);
292 SelfType& operator=(
const SelfType&);
295 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8,
class T9>
297 typedef Values9 SelfType;
300 Values9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9)
312 std::vector<T>* Gen()
const {
313 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5, m_V6, m_V7, m_V8, m_V9};
314 return new std::vector<T>(&a[0], &a[0] + 9);
327 SelfType& operator=(
const SelfType&);
330 template <
class T1,
class T2,
class T3,
class T4,
class T5,
class T6,
class T7,
class T8,
class T9,
333 typedef Values10 SelfType;
336 Values10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10)
349 std::vector<T>* Gen()
const {
350 T a[] = {m_V1, m_V2, m_V3, m_V4, m_V5, m_V6, m_V7, m_V8, m_V9, m_V10};
351 return new std::vector<T>(&a[0], &a[0] + 10);
365 SelfType& operator=(
const SelfType&);
372 #endif // INCLUDE_NN_NLIB_TESTING_PARAMVALUETYPES_H_
#define NLIB_FINAL
Defines final if it is available for use. If not, holds an empty string.
Defines that class that is corresponding to std::unique_ptr.
A file that contains the configuration information for each development environment.