cppjieba_rb 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +3 -0
  3. data/README.md +1 -1
  4. data/Rakefile +2 -2
  5. data/cppjieba_rb.gemspec +4 -4
  6. data/lib/cppjieba_rb/version.rb +1 -1
  7. metadata +17 -135
  8. data/ext/cppjieba/.gitignore +0 -17
  9. data/ext/cppjieba/.travis.yml +0 -21
  10. data/ext/cppjieba/CMakeLists.txt +0 -28
  11. data/ext/cppjieba/ChangeLog.md +0 -236
  12. data/ext/cppjieba/README.md +0 -292
  13. data/ext/cppjieba/README_EN.md +0 -113
  14. data/ext/cppjieba/appveyor.yml +0 -32
  15. data/ext/cppjieba/deps/CMakeLists.txt +0 -1
  16. data/ext/cppjieba/deps/gtest/CMakeLists.txt +0 -5
  17. data/ext/cppjieba/deps/gtest/include/gtest/gtest-death-test.h +0 -283
  18. data/ext/cppjieba/deps/gtest/include/gtest/gtest-message.h +0 -230
  19. data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h +0 -1421
  20. data/ext/cppjieba/deps/gtest/include/gtest/gtest-param-test.h.pump +0 -487
  21. data/ext/cppjieba/deps/gtest/include/gtest/gtest-printers.h +0 -796
  22. data/ext/cppjieba/deps/gtest/include/gtest/gtest-spi.h +0 -232
  23. data/ext/cppjieba/deps/gtest/include/gtest/gtest-test-part.h +0 -176
  24. data/ext/cppjieba/deps/gtest/include/gtest/gtest-typed-test.h +0 -259
  25. data/ext/cppjieba/deps/gtest/include/gtest/gtest.h +0 -2155
  26. data/ext/cppjieba/deps/gtest/include/gtest/gtest_pred_impl.h +0 -358
  27. data/ext/cppjieba/deps/gtest/include/gtest/gtest_prod.h +0 -58
  28. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-death-test-internal.h +0 -308
  29. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-filepath.h +0 -210
  30. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-internal.h +0 -1226
  31. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-linked_ptr.h +0 -233
  32. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h +0 -4822
  33. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util-generated.h.pump +0 -301
  34. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-param-util.h +0 -619
  35. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-port.h +0 -1788
  36. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-string.h +0 -350
  37. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h +0 -968
  38. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-tuple.h.pump +0 -336
  39. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h +0 -3330
  40. data/ext/cppjieba/deps/gtest/include/gtest/internal/gtest-type-util.h.pump +0 -296
  41. data/ext/cppjieba/deps/gtest/src/.deps/.dirstamp +0 -0
  42. data/ext/cppjieba/deps/gtest/src/.deps/gtest-all.Plo +0 -681
  43. data/ext/cppjieba/deps/gtest/src/.deps/gtest_main.Plo +0 -509
  44. data/ext/cppjieba/deps/gtest/src/.dirstamp +0 -0
  45. data/ext/cppjieba/deps/gtest/src/gtest-all.cc +0 -48
  46. data/ext/cppjieba/deps/gtest/src/gtest-death-test.cc +0 -1234
  47. data/ext/cppjieba/deps/gtest/src/gtest-filepath.cc +0 -380
  48. data/ext/cppjieba/deps/gtest/src/gtest-internal-inl.h +0 -1038
  49. data/ext/cppjieba/deps/gtest/src/gtest-port.cc +0 -746
  50. data/ext/cppjieba/deps/gtest/src/gtest-printers.cc +0 -356
  51. data/ext/cppjieba/deps/gtest/src/gtest-test-part.cc +0 -110
  52. data/ext/cppjieba/deps/gtest/src/gtest-typed-test.cc +0 -110
  53. data/ext/cppjieba/deps/gtest/src/gtest.cc +0 -4898
  54. data/ext/cppjieba/deps/gtest/src/gtest_main.cc +0 -39
  55. data/ext/cppjieba/deps/limonp/ArgvContext.hpp +0 -70
  56. data/ext/cppjieba/deps/limonp/BlockingQueue.hpp +0 -49
  57. data/ext/cppjieba/deps/limonp/BoundedBlockingQueue.hpp +0 -67
  58. data/ext/cppjieba/deps/limonp/BoundedQueue.hpp +0 -65
  59. data/ext/cppjieba/deps/limonp/Closure.hpp +0 -206
  60. data/ext/cppjieba/deps/limonp/Colors.hpp +0 -31
  61. data/ext/cppjieba/deps/limonp/Condition.hpp +0 -38
  62. data/ext/cppjieba/deps/limonp/Config.hpp +0 -103
  63. data/ext/cppjieba/deps/limonp/FileLock.hpp +0 -74
  64. data/ext/cppjieba/deps/limonp/ForcePublic.hpp +0 -7
  65. data/ext/cppjieba/deps/limonp/LocalVector.hpp +0 -139
  66. data/ext/cppjieba/deps/limonp/Logging.hpp +0 -76
  67. data/ext/cppjieba/deps/limonp/Md5.hpp +0 -411
  68. data/ext/cppjieba/deps/limonp/MutexLock.hpp +0 -51
  69. data/ext/cppjieba/deps/limonp/NonCopyable.hpp +0 -21
  70. data/ext/cppjieba/deps/limonp/StdExtension.hpp +0 -159
  71. data/ext/cppjieba/deps/limonp/StringUtil.hpp +0 -365
  72. data/ext/cppjieba/deps/limonp/Thread.hpp +0 -44
  73. data/ext/cppjieba/deps/limonp/ThreadPool.hpp +0 -86
  74. data/ext/cppjieba/dict/README.md +0 -31
  75. data/ext/cppjieba/dict/hmm_model.utf8 +0 -34
  76. data/ext/cppjieba/dict/idf.utf8 +0 -258826
  77. data/ext/cppjieba/dict/jieba.dict.utf8 +0 -348982
  78. data/ext/cppjieba/dict/pos_dict/char_state_tab.utf8 +0 -6653
  79. data/ext/cppjieba/dict/pos_dict/prob_emit.utf8 +0 -166
  80. data/ext/cppjieba/dict/pos_dict/prob_start.utf8 +0 -259
  81. data/ext/cppjieba/dict/pos_dict/prob_trans.utf8 +0 -5222
  82. data/ext/cppjieba/dict/stop_words.utf8 +0 -1534
  83. data/ext/cppjieba/dict/user.dict.utf8 +0 -4
  84. data/ext/cppjieba/include/cppjieba/DictTrie.hpp +0 -277
  85. data/ext/cppjieba/include/cppjieba/FullSegment.hpp +0 -93
  86. data/ext/cppjieba/include/cppjieba/HMMModel.hpp +0 -129
  87. data/ext/cppjieba/include/cppjieba/HMMSegment.hpp +0 -190
  88. data/ext/cppjieba/include/cppjieba/Jieba.hpp +0 -130
  89. data/ext/cppjieba/include/cppjieba/KeywordExtractor.hpp +0 -153
  90. data/ext/cppjieba/include/cppjieba/MPSegment.hpp +0 -137
  91. data/ext/cppjieba/include/cppjieba/MixSegment.hpp +0 -109
  92. data/ext/cppjieba/include/cppjieba/PosTagger.hpp +0 -77
  93. data/ext/cppjieba/include/cppjieba/PreFilter.hpp +0 -54
  94. data/ext/cppjieba/include/cppjieba/QuerySegment.hpp +0 -90
  95. data/ext/cppjieba/include/cppjieba/SegmentBase.hpp +0 -46
  96. data/ext/cppjieba/include/cppjieba/SegmentTagged.hpp +0 -23
  97. data/ext/cppjieba/include/cppjieba/TextRankExtractor.hpp +0 -190
  98. data/ext/cppjieba/include/cppjieba/Trie.hpp +0 -174
  99. data/ext/cppjieba/include/cppjieba/Unicode.hpp +0 -227
  100. data/ext/cppjieba/test/CMakeLists.txt +0 -5
  101. data/ext/cppjieba/test/demo.cpp +0 -80
  102. data/ext/cppjieba/test/load_test.cpp +0 -54
  103. data/ext/cppjieba/test/testdata/curl.res +0 -1
  104. data/ext/cppjieba/test/testdata/extra_dict/jieba.dict.small.utf8 +0 -109750
  105. data/ext/cppjieba/test/testdata/gbk_dict/hmm_model.gbk +0 -34
  106. data/ext/cppjieba/test/testdata/gbk_dict/jieba.dict.gbk +0 -348982
  107. data/ext/cppjieba/test/testdata/jieba.dict.0.1.utf8 +0 -93
  108. data/ext/cppjieba/test/testdata/jieba.dict.0.utf8 +0 -93
  109. data/ext/cppjieba/test/testdata/jieba.dict.1.utf8 +0 -67
  110. data/ext/cppjieba/test/testdata/jieba.dict.2.utf8 +0 -64
  111. data/ext/cppjieba/test/testdata/load_test.urls +0 -2
  112. data/ext/cppjieba/test/testdata/review.100 +0 -100
  113. data/ext/cppjieba/test/testdata/review.100.res +0 -200
  114. data/ext/cppjieba/test/testdata/server.conf +0 -19
  115. data/ext/cppjieba/test/testdata/testlines.gbk +0 -9
  116. data/ext/cppjieba/test/testdata/testlines.utf8 +0 -8
  117. data/ext/cppjieba/test/testdata/userdict.2.utf8 +0 -1
  118. data/ext/cppjieba/test/testdata/userdict.english +0 -2
  119. data/ext/cppjieba/test/testdata/userdict.utf8 +0 -8
  120. data/ext/cppjieba/test/testdata/weicheng.utf8 +0 -247
  121. data/ext/cppjieba/test/unittest/CMakeLists.txt +0 -24
  122. data/ext/cppjieba/test/unittest/gtest_main.cpp +0 -39
  123. data/ext/cppjieba/test/unittest/jieba_test.cpp +0 -133
  124. data/ext/cppjieba/test/unittest/keyword_extractor_test.cpp +0 -79
  125. data/ext/cppjieba/test/unittest/pos_tagger_test.cpp +0 -41
  126. data/ext/cppjieba/test/unittest/pre_filter_test.cpp +0 -43
  127. data/ext/cppjieba/test/unittest/segments_test.cpp +0 -256
  128. data/ext/cppjieba/test/unittest/textrank_test.cpp +0 -86
  129. data/ext/cppjieba/test/unittest/trie_test.cpp +0 -177
  130. data/ext/cppjieba/test/unittest/unicode_test.cpp +0 -43
@@ -1,1421 +0,0 @@
1
- // This file was GENERATED by command:
2
- // pump.py gtest-param-test.h.pump
3
- // DO NOT EDIT BY HAND!!!
4
-
5
- // Copyright 2008, Google Inc.
6
- // All rights reserved.
7
- //
8
- // Redistribution and use in source and binary forms, with or without
9
- // modification, are permitted provided that the following conditions are
10
- // met:
11
- //
12
- // * Redistributions of source code must retain the above copyright
13
- // notice, this list of conditions and the following disclaimer.
14
- // * Redistributions in binary form must reproduce the above
15
- // copyright notice, this list of conditions and the following disclaimer
16
- // in the documentation and/or other materials provided with the
17
- // distribution.
18
- // * Neither the name of Google Inc. nor the names of its
19
- // contributors may be used to endorse or promote products derived from
20
- // this software without specific prior written permission.
21
- //
22
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
25
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
26
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
27
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
28
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
29
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
30
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
31
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
- //
34
- // Authors: vladl@google.com (Vlad Losev)
35
- //
36
- // Macros and functions for implementing parameterized tests
37
- // in Google C++ Testing Framework (Google Test)
38
- //
39
- // This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
40
- //
41
- #ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
42
- #define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_
43
-
44
-
45
- // Value-parameterized tests allow you to test your code with different
46
- // parameters without writing multiple copies of the same test.
47
- //
48
- // Here is how you use value-parameterized tests:
49
-
50
- #if 0
51
-
52
- // To write value-parameterized tests, first you should define a fixture
53
- // class. It is usually derived from testing::TestWithParam<T> (see below for
54
- // another inheritance scheme that's sometimes useful in more complicated
55
- // class hierarchies), where the type of your parameter values.
56
- // TestWithParam<T> is itself derived from testing::Test. T can be any
57
- // copyable type. If it's a raw pointer, you are responsible for managing the
58
- // lifespan of the pointed values.
59
-
60
- class FooTest : public ::testing::TestWithParam<const char*> {
61
- // You can implement all the usual class fixture members here.
62
- };
63
-
64
- // Then, use the TEST_P macro to define as many parameterized tests
65
- // for this fixture as you want. The _P suffix is for "parameterized"
66
- // or "pattern", whichever you prefer to think.
67
-
68
- TEST_P(FooTest, DoesBlah) {
69
- // Inside a test, access the test parameter with the GetParam() method
70
- // of the TestWithParam<T> class:
71
- EXPECT_TRUE(foo.Blah(GetParam()));
72
- ...
73
- }
74
-
75
- TEST_P(FooTest, HasBlahBlah) {
76
- ...
77
- }
78
-
79
- // Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test
80
- // case with any set of parameters you want. Google Test defines a number
81
- // of functions for generating test parameters. They return what we call
82
- // (surprise!) parameter generators. Here is a summary of them, which
83
- // are all in the testing namespace:
84
- //
85
- //
86
- // Range(begin, end [, step]) - Yields values {begin, begin+step,
87
- // begin+step+step, ...}. The values do not
88
- // include end. step defaults to 1.
89
- // Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}.
90
- // ValuesIn(container) - Yields values from a C-style array, an STL
91
- // ValuesIn(begin,end) container, or an iterator range [begin, end).
92
- // Bool() - Yields sequence {false, true}.
93
- // Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product
94
- // for the math savvy) of the values generated
95
- // by the N generators.
96
- //
97
- // For more details, see comments at the definitions of these functions below
98
- // in this file.
99
- //
100
- // The following statement will instantiate tests from the FooTest test case
101
- // each with parameter values "meeny", "miny", and "moe".
102
-
103
- INSTANTIATE_TEST_CASE_P(InstantiationName,
104
- FooTest,
105
- Values("meeny", "miny", "moe"));
106
-
107
- // To distinguish different instances of the pattern, (yes, you
108
- // can instantiate it more then once) the first argument to the
109
- // INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the
110
- // actual test case name. Remember to pick unique prefixes for different
111
- // instantiations. The tests from the instantiation above will have
112
- // these names:
113
- //
114
- // * InstantiationName/FooTest.DoesBlah/0 for "meeny"
115
- // * InstantiationName/FooTest.DoesBlah/1 for "miny"
116
- // * InstantiationName/FooTest.DoesBlah/2 for "moe"
117
- // * InstantiationName/FooTest.HasBlahBlah/0 for "meeny"
118
- // * InstantiationName/FooTest.HasBlahBlah/1 for "miny"
119
- // * InstantiationName/FooTest.HasBlahBlah/2 for "moe"
120
- //
121
- // You can use these names in --gtest_filter.
122
- //
123
- // This statement will instantiate all tests from FooTest again, each
124
- // with parameter values "cat" and "dog":
125
-
126
- const char* pets[] = {"cat", "dog"};
127
- INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets));
128
-
129
- // The tests from the instantiation above will have these names:
130
- //
131
- // * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat"
132
- // * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog"
133
- // * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat"
134
- // * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog"
135
- //
136
- // Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests
137
- // in the given test case, whether their definitions come before or
138
- // AFTER the INSTANTIATE_TEST_CASE_P statement.
139
- //
140
- // Please also note that generator expressions (including parameters to the
141
- // generators) are evaluated in InitGoogleTest(), after main() has started.
142
- // This allows the user on one hand, to adjust generator parameters in order
143
- // to dynamically determine a set of tests to run and on the other hand,
144
- // give the user a chance to inspect the generated tests with Google Test
145
- // reflection API before RUN_ALL_TESTS() is executed.
146
- //
147
- // You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc
148
- // for more examples.
149
- //
150
- // In the future, we plan to publish the API for defining new parameter
151
- // generators. But for now this interface remains part of the internal
152
- // implementation and is subject to change.
153
- //
154
- //
155
- // A parameterized test fixture must be derived from testing::Test and from
156
- // testing::WithParamInterface<T>, where T is the type of the parameter
157
- // values. Inheriting from TestWithParam<T> satisfies that requirement because
158
- // TestWithParam<T> inherits from both Test and WithParamInterface. In more
159
- // complicated hierarchies, however, it is occasionally useful to inherit
160
- // separately from Test and WithParamInterface. For example:
161
-
162
- class BaseTest : public ::testing::Test {
163
- // You can inherit all the usual members for a non-parameterized test
164
- // fixture here.
165
- };
166
-
167
- class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> {
168
- // The usual test fixture members go here too.
169
- };
170
-
171
- TEST_F(BaseTest, HasFoo) {
172
- // This is an ordinary non-parameterized test.
173
- }
174
-
175
- TEST_P(DerivedTest, DoesBlah) {
176
- // GetParam works just the same here as if you inherit from TestWithParam.
177
- EXPECT_TRUE(foo.Blah(GetParam()));
178
- }
179
-
180
- #endif // 0
181
-
182
- #include "gtest/internal/gtest-port.h"
183
-
184
- #if !GTEST_OS_SYMBIAN
185
- # include <utility>
186
- #endif
187
-
188
- // scripts/fuse_gtest.py depends on gtest's own header being #included
189
- // *unconditionally*. Therefore these #includes cannot be moved
190
- // inside #if GTEST_HAS_PARAM_TEST.
191
- #include "gtest/internal/gtest-internal.h"
192
- #include "gtest/internal/gtest-param-util.h"
193
- #include "gtest/internal/gtest-param-util-generated.h"
194
-
195
- #if GTEST_HAS_PARAM_TEST
196
-
197
- namespace testing {
198
-
199
- // Functions producing parameter generators.
200
- //
201
- // Google Test uses these generators to produce parameters for value-
202
- // parameterized tests. When a parameterized test case is instantiated
203
- // with a particular generator, Google Test creates and runs tests
204
- // for each element in the sequence produced by the generator.
205
- //
206
- // In the following sample, tests from test case FooTest are instantiated
207
- // each three times with parameter values 3, 5, and 8:
208
- //
209
- // class FooTest : public TestWithParam<int> { ... };
210
- //
211
- // TEST_P(FooTest, TestThis) {
212
- // }
213
- // TEST_P(FooTest, TestThat) {
214
- // }
215
- // INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8));
216
- //
217
-
218
- // Range() returns generators providing sequences of values in a range.
219
- //
220
- // Synopsis:
221
- // Range(start, end)
222
- // - returns a generator producing a sequence of values {start, start+1,
223
- // start+2, ..., }.
224
- // Range(start, end, step)
225
- // - returns a generator producing a sequence of values {start, start+step,
226
- // start+step+step, ..., }.
227
- // Notes:
228
- // * The generated sequences never include end. For example, Range(1, 5)
229
- // returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2)
230
- // returns a generator producing {1, 3, 5, 7}.
231
- // * start and end must have the same type. That type may be any integral or
232
- // floating-point type or a user defined type satisfying these conditions:
233
- // * It must be assignable (have operator=() defined).
234
- // * It must have operator+() (operator+(int-compatible type) for
235
- // two-operand version).
236
- // * It must have operator<() defined.
237
- // Elements in the resulting sequences will also have that type.
238
- // * Condition start < end must be satisfied in order for resulting sequences
239
- // to contain any elements.
240
- //
241
- template <typename T, typename IncrementT>
242
- internal::ParamGenerator<T> Range(T start, T end, IncrementT step) {
243
- return internal::ParamGenerator<T>(
244
- new internal::RangeGenerator<T, IncrementT>(start, end, step));
245
- }
246
-
247
- template <typename T>
248
- internal::ParamGenerator<T> Range(T start, T end) {
249
- return Range(start, end, 1);
250
- }
251
-
252
- // ValuesIn() function allows generation of tests with parameters coming from
253
- // a container.
254
- //
255
- // Synopsis:
256
- // ValuesIn(const T (&array)[N])
257
- // - returns a generator producing sequences with elements from
258
- // a C-style array.
259
- // ValuesIn(const Container& container)
260
- // - returns a generator producing sequences with elements from
261
- // an STL-style container.
262
- // ValuesIn(Iterator begin, Iterator end)
263
- // - returns a generator producing sequences with elements from
264
- // a range [begin, end) defined by a pair of STL-style iterators. These
265
- // iterators can also be plain C pointers.
266
- //
267
- // Please note that ValuesIn copies the values from the containers
268
- // passed in and keeps them to generate tests in RUN_ALL_TESTS().
269
- //
270
- // Examples:
271
- //
272
- // This instantiates tests from test case StringTest
273
- // each with C-string values of "foo", "bar", and "baz":
274
- //
275
- // const char* strings[] = {"foo", "bar", "baz"};
276
- // INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings));
277
- //
278
- // This instantiates tests from test case StlStringTest
279
- // each with STL strings with values "a" and "b":
280
- //
281
- // ::std::vector< ::std::string> GetParameterStrings() {
282
- // ::std::vector< ::std::string> v;
283
- // v.push_back("a");
284
- // v.push_back("b");
285
- // return v;
286
- // }
287
- //
288
- // INSTANTIATE_TEST_CASE_P(CharSequence,
289
- // StlStringTest,
290
- // ValuesIn(GetParameterStrings()));
291
- //
292
- //
293
- // This will also instantiate tests from CharTest
294
- // each with parameter values 'a' and 'b':
295
- //
296
- // ::std::list<char> GetParameterChars() {
297
- // ::std::list<char> list;
298
- // list.push_back('a');
299
- // list.push_back('b');
300
- // return list;
301
- // }
302
- // ::std::list<char> l = GetParameterChars();
303
- // INSTANTIATE_TEST_CASE_P(CharSequence2,
304
- // CharTest,
305
- // ValuesIn(l.begin(), l.end()));
306
- //
307
- template <typename ForwardIterator>
308
- internal::ParamGenerator<
309
- typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
310
- ValuesIn(ForwardIterator begin, ForwardIterator end) {
311
- typedef typename ::testing::internal::IteratorTraits<ForwardIterator>
312
- ::value_type ParamType;
313
- return internal::ParamGenerator<ParamType>(
314
- new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end));
315
- }
316
-
317
- template <typename T, size_t N>
318
- internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) {
319
- return ValuesIn(array, array + N);
320
- }
321
-
322
- template <class Container>
323
- internal::ParamGenerator<typename Container::value_type> ValuesIn(
324
- const Container& container) {
325
- return ValuesIn(container.begin(), container.end());
326
- }
327
-
328
- // Values() allows generating tests from explicitly specified list of
329
- // parameters.
330
- //
331
- // Synopsis:
332
- // Values(T v1, T v2, ..., T vN)
333
- // - returns a generator producing sequences with elements v1, v2, ..., vN.
334
- //
335
- // For example, this instantiates tests from test case BarTest each
336
- // with values "one", "two", and "three":
337
- //
338
- // INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three"));
339
- //
340
- // This instantiates tests from test case BazTest each with values 1, 2, 3.5.
341
- // The exact type of values will depend on the type of parameter in BazTest.
342
- //
343
- // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));
344
- //
345
- // Currently, Values() supports from 1 to 50 parameters.
346
- //
347
- template <typename T1>
348
- internal::ValueArray1<T1> Values(T1 v1) {
349
- return internal::ValueArray1<T1>(v1);
350
- }
351
-
352
- template <typename T1, typename T2>
353
- internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) {
354
- return internal::ValueArray2<T1, T2>(v1, v2);
355
- }
356
-
357
- template <typename T1, typename T2, typename T3>
358
- internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) {
359
- return internal::ValueArray3<T1, T2, T3>(v1, v2, v3);
360
- }
361
-
362
- template <typename T1, typename T2, typename T3, typename T4>
363
- internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) {
364
- return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4);
365
- }
366
-
367
- template <typename T1, typename T2, typename T3, typename T4, typename T5>
368
- internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4,
369
- T5 v5) {
370
- return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5);
371
- }
372
-
373
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
374
- typename T6>
375
- internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3,
376
- T4 v4, T5 v5, T6 v6) {
377
- return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6);
378
- }
379
-
380
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
381
- typename T6, typename T7>
382
- internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3,
383
- T4 v4, T5 v5, T6 v6, T7 v7) {
384
- return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5,
385
- v6, v7);
386
- }
387
-
388
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
389
- typename T6, typename T7, typename T8>
390
- internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2,
391
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) {
392
- return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4,
393
- v5, v6, v7, v8);
394
- }
395
-
396
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
397
- typename T6, typename T7, typename T8, typename T9>
398
- internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2,
399
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) {
400
- return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3,
401
- v4, v5, v6, v7, v8, v9);
402
- }
403
-
404
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
405
- typename T6, typename T7, typename T8, typename T9, typename T10>
406
- internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1,
407
- T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) {
408
- return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1,
409
- v2, v3, v4, v5, v6, v7, v8, v9, v10);
410
- }
411
-
412
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
413
- typename T6, typename T7, typename T8, typename T9, typename T10,
414
- typename T11>
415
- internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
416
- T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
417
- T10 v10, T11 v11) {
418
- return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10,
419
- T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11);
420
- }
421
-
422
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
423
- typename T6, typename T7, typename T8, typename T9, typename T10,
424
- typename T11, typename T12>
425
- internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
426
- T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
427
- T10 v10, T11 v11, T12 v12) {
428
- return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
429
- T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12);
430
- }
431
-
432
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
433
- typename T6, typename T7, typename T8, typename T9, typename T10,
434
- typename T11, typename T12, typename T13>
435
- internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12,
436
- T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
437
- T10 v10, T11 v11, T12 v12, T13 v13) {
438
- return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
439
- T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
440
- }
441
-
442
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
443
- typename T6, typename T7, typename T8, typename T9, typename T10,
444
- typename T11, typename T12, typename T13, typename T14>
445
- internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
446
- T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
447
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) {
448
- return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
449
- T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
450
- v14);
451
- }
452
-
453
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
454
- typename T6, typename T7, typename T8, typename T9, typename T10,
455
- typename T11, typename T12, typename T13, typename T14, typename T15>
456
- internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
457
- T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
458
- T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) {
459
- return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
460
- T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
461
- v13, v14, v15);
462
- }
463
-
464
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
465
- typename T6, typename T7, typename T8, typename T9, typename T10,
466
- typename T11, typename T12, typename T13, typename T14, typename T15,
467
- typename T16>
468
- internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
469
- T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
470
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
471
- T16 v16) {
472
- return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
473
- T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
474
- v12, v13, v14, v15, v16);
475
- }
476
-
477
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
478
- typename T6, typename T7, typename T8, typename T9, typename T10,
479
- typename T11, typename T12, typename T13, typename T14, typename T15,
480
- typename T16, typename T17>
481
- internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
482
- T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
483
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
484
- T16 v16, T17 v17) {
485
- return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
486
- T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
487
- v11, v12, v13, v14, v15, v16, v17);
488
- }
489
-
490
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
491
- typename T6, typename T7, typename T8, typename T9, typename T10,
492
- typename T11, typename T12, typename T13, typename T14, typename T15,
493
- typename T16, typename T17, typename T18>
494
- internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
495
- T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
496
- T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
497
- T16 v16, T17 v17, T18 v18) {
498
- return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
499
- T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
500
- v10, v11, v12, v13, v14, v15, v16, v17, v18);
501
- }
502
-
503
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
504
- typename T6, typename T7, typename T8, typename T9, typename T10,
505
- typename T11, typename T12, typename T13, typename T14, typename T15,
506
- typename T16, typename T17, typename T18, typename T19>
507
- internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
508
- T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
509
- T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
510
- T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) {
511
- return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
512
- T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8,
513
- v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19);
514
- }
515
-
516
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
517
- typename T6, typename T7, typename T8, typename T9, typename T10,
518
- typename T11, typename T12, typename T13, typename T14, typename T15,
519
- typename T16, typename T17, typename T18, typename T19, typename T20>
520
- internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
521
- T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4,
522
- T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
523
- T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) {
524
- return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
525
- T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7,
526
- v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20);
527
- }
528
-
529
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
530
- typename T6, typename T7, typename T8, typename T9, typename T10,
531
- typename T11, typename T12, typename T13, typename T14, typename T15,
532
- typename T16, typename T17, typename T18, typename T19, typename T20,
533
- typename T21>
534
- internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
535
- T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4,
536
- T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
537
- T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) {
538
- return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
539
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6,
540
- v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21);
541
- }
542
-
543
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
544
- typename T6, typename T7, typename T8, typename T9, typename T10,
545
- typename T11, typename T12, typename T13, typename T14, typename T15,
546
- typename T16, typename T17, typename T18, typename T19, typename T20,
547
- typename T21, typename T22>
548
- internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
549
- T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3,
550
- T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
551
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
552
- T21 v21, T22 v22) {
553
- return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
554
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4,
555
- v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
556
- v20, v21, v22);
557
- }
558
-
559
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
560
- typename T6, typename T7, typename T8, typename T9, typename T10,
561
- typename T11, typename T12, typename T13, typename T14, typename T15,
562
- typename T16, typename T17, typename T18, typename T19, typename T20,
563
- typename T21, typename T22, typename T23>
564
- internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
565
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2,
566
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
567
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
568
- T21 v21, T22 v22, T23 v23) {
569
- return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
570
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3,
571
- v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
572
- v20, v21, v22, v23);
573
- }
574
-
575
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
576
- typename T6, typename T7, typename T8, typename T9, typename T10,
577
- typename T11, typename T12, typename T13, typename T14, typename T15,
578
- typename T16, typename T17, typename T18, typename T19, typename T20,
579
- typename T21, typename T22, typename T23, typename T24>
580
- internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
581
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2,
582
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
583
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
584
- T21 v21, T22 v22, T23 v23, T24 v24) {
585
- return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
586
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2,
587
- v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
588
- v19, v20, v21, v22, v23, v24);
589
- }
590
-
591
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
592
- typename T6, typename T7, typename T8, typename T9, typename T10,
593
- typename T11, typename T12, typename T13, typename T14, typename T15,
594
- typename T16, typename T17, typename T18, typename T19, typename T20,
595
- typename T21, typename T22, typename T23, typename T24, typename T25>
596
- internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
597
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1,
598
- T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
599
- T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
600
- T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) {
601
- return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
602
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1,
603
- v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
604
- v18, v19, v20, v21, v22, v23, v24, v25);
605
- }
606
-
607
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
608
- typename T6, typename T7, typename T8, typename T9, typename T10,
609
- typename T11, typename T12, typename T13, typename T14, typename T15,
610
- typename T16, typename T17, typename T18, typename T19, typename T20,
611
- typename T21, typename T22, typename T23, typename T24, typename T25,
612
- typename T26>
613
- internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
614
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
615
- T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
616
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
617
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
618
- T26 v26) {
619
- return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
620
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
621
- T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
622
- v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26);
623
- }
624
-
625
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
626
- typename T6, typename T7, typename T8, typename T9, typename T10,
627
- typename T11, typename T12, typename T13, typename T14, typename T15,
628
- typename T16, typename T17, typename T18, typename T19, typename T20,
629
- typename T21, typename T22, typename T23, typename T24, typename T25,
630
- typename T26, typename T27>
631
- internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
632
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26,
633
- T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
634
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
635
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
636
- T26 v26, T27 v27) {
637
- return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
638
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
639
- T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
640
- v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27);
641
- }
642
-
643
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
644
- typename T6, typename T7, typename T8, typename T9, typename T10,
645
- typename T11, typename T12, typename T13, typename T14, typename T15,
646
- typename T16, typename T17, typename T18, typename T19, typename T20,
647
- typename T21, typename T22, typename T23, typename T24, typename T25,
648
- typename T26, typename T27, typename T28>
649
- internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
650
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27,
651
- T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
652
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
653
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
654
- T26 v26, T27 v27, T28 v28) {
655
- return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
656
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
657
- T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
658
- v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
659
- v28);
660
- }
661
-
662
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
663
- typename T6, typename T7, typename T8, typename T9, typename T10,
664
- typename T11, typename T12, typename T13, typename T14, typename T15,
665
- typename T16, typename T17, typename T18, typename T19, typename T20,
666
- typename T21, typename T22, typename T23, typename T24, typename T25,
667
- typename T26, typename T27, typename T28, typename T29>
668
- internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
669
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
670
- T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
671
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
672
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
673
- T26 v26, T27 v27, T28 v28, T29 v29) {
674
- return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
675
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
676
- T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
677
- v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
678
- v27, v28, v29);
679
- }
680
-
681
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
682
- typename T6, typename T7, typename T8, typename T9, typename T10,
683
- typename T11, typename T12, typename T13, typename T14, typename T15,
684
- typename T16, typename T17, typename T18, typename T19, typename T20,
685
- typename T21, typename T22, typename T23, typename T24, typename T25,
686
- typename T26, typename T27, typename T28, typename T29, typename T30>
687
- internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
688
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
689
- T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
690
- T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
691
- T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
692
- T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) {
693
- return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
694
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
695
- T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
696
- v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
697
- v26, v27, v28, v29, v30);
698
- }
699
-
700
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
701
- typename T6, typename T7, typename T8, typename T9, typename T10,
702
- typename T11, typename T12, typename T13, typename T14, typename T15,
703
- typename T16, typename T17, typename T18, typename T19, typename T20,
704
- typename T21, typename T22, typename T23, typename T24, typename T25,
705
- typename T26, typename T27, typename T28, typename T29, typename T30,
706
- typename T31>
707
- internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
708
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
709
- T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
710
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
711
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
712
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) {
713
- return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
714
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
715
- T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
716
- v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
717
- v25, v26, v27, v28, v29, v30, v31);
718
- }
719
-
720
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
721
- typename T6, typename T7, typename T8, typename T9, typename T10,
722
- typename T11, typename T12, typename T13, typename T14, typename T15,
723
- typename T16, typename T17, typename T18, typename T19, typename T20,
724
- typename T21, typename T22, typename T23, typename T24, typename T25,
725
- typename T26, typename T27, typename T28, typename T29, typename T30,
726
- typename T31, typename T32>
727
- internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
728
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
729
- T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
730
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
731
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
732
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
733
- T32 v32) {
734
- return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
735
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
736
- T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
737
- v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
738
- v24, v25, v26, v27, v28, v29, v30, v31, v32);
739
- }
740
-
741
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
742
- typename T6, typename T7, typename T8, typename T9, typename T10,
743
- typename T11, typename T12, typename T13, typename T14, typename T15,
744
- typename T16, typename T17, typename T18, typename T19, typename T20,
745
- typename T21, typename T22, typename T23, typename T24, typename T25,
746
- typename T26, typename T27, typename T28, typename T29, typename T30,
747
- typename T31, typename T32, typename T33>
748
- internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
749
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
750
- T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
751
- T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
752
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
753
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
754
- T32 v32, T33 v33) {
755
- return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
756
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
757
- T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8,
758
- v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
759
- v24, v25, v26, v27, v28, v29, v30, v31, v32, v33);
760
- }
761
-
762
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
763
- typename T6, typename T7, typename T8, typename T9, typename T10,
764
- typename T11, typename T12, typename T13, typename T14, typename T15,
765
- typename T16, typename T17, typename T18, typename T19, typename T20,
766
- typename T21, typename T22, typename T23, typename T24, typename T25,
767
- typename T26, typename T27, typename T28, typename T29, typename T30,
768
- typename T31, typename T32, typename T33, typename T34>
769
- internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
770
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
771
- T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
772
- T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
773
- T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
774
- T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
775
- T31 v31, T32 v32, T33 v33, T34 v34) {
776
- return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
777
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
778
- T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7,
779
- v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
780
- v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34);
781
- }
782
-
783
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
784
- typename T6, typename T7, typename T8, typename T9, typename T10,
785
- typename T11, typename T12, typename T13, typename T14, typename T15,
786
- typename T16, typename T17, typename T18, typename T19, typename T20,
787
- typename T21, typename T22, typename T23, typename T24, typename T25,
788
- typename T26, typename T27, typename T28, typename T29, typename T30,
789
- typename T31, typename T32, typename T33, typename T34, typename T35>
790
- internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
791
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
792
- T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4,
793
- T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
794
- T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
795
- T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
796
- T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) {
797
- return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
798
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
799
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6,
800
- v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
801
- v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35);
802
- }
803
-
804
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
805
- typename T6, typename T7, typename T8, typename T9, typename T10,
806
- typename T11, typename T12, typename T13, typename T14, typename T15,
807
- typename T16, typename T17, typename T18, typename T19, typename T20,
808
- typename T21, typename T22, typename T23, typename T24, typename T25,
809
- typename T26, typename T27, typename T28, typename T29, typename T30,
810
- typename T31, typename T32, typename T33, typename T34, typename T35,
811
- typename T36>
812
- internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
813
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
814
- T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4,
815
- T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
816
- T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
817
- T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
818
- T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) {
819
- return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
820
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
821
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4,
822
- v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
823
- v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
824
- v34, v35, v36);
825
- }
826
-
827
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
828
- typename T6, typename T7, typename T8, typename T9, typename T10,
829
- typename T11, typename T12, typename T13, typename T14, typename T15,
830
- typename T16, typename T17, typename T18, typename T19, typename T20,
831
- typename T21, typename T22, typename T23, typename T24, typename T25,
832
- typename T26, typename T27, typename T28, typename T29, typename T30,
833
- typename T31, typename T32, typename T33, typename T34, typename T35,
834
- typename T36, typename T37>
835
- internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
836
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
837
- T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3,
838
- T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
839
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
840
- T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
841
- T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
842
- T37 v37) {
843
- return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
844
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
845
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3,
846
- v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
847
- v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
848
- v34, v35, v36, v37);
849
- }
850
-
851
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
852
- typename T6, typename T7, typename T8, typename T9, typename T10,
853
- typename T11, typename T12, typename T13, typename T14, typename T15,
854
- typename T16, typename T17, typename T18, typename T19, typename T20,
855
- typename T21, typename T22, typename T23, typename T24, typename T25,
856
- typename T26, typename T27, typename T28, typename T29, typename T30,
857
- typename T31, typename T32, typename T33, typename T34, typename T35,
858
- typename T36, typename T37, typename T38>
859
- internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
860
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
861
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2,
862
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
863
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
864
- T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
865
- T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
866
- T37 v37, T38 v38) {
867
- return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
868
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
869
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2,
870
- v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18,
871
- v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32,
872
- v33, v34, v35, v36, v37, v38);
873
- }
874
-
875
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
876
- typename T6, typename T7, typename T8, typename T9, typename T10,
877
- typename T11, typename T12, typename T13, typename T14, typename T15,
878
- typename T16, typename T17, typename T18, typename T19, typename T20,
879
- typename T21, typename T22, typename T23, typename T24, typename T25,
880
- typename T26, typename T27, typename T28, typename T29, typename T30,
881
- typename T31, typename T32, typename T33, typename T34, typename T35,
882
- typename T36, typename T37, typename T38, typename T39>
883
- internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
884
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
885
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2,
886
- T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12,
887
- T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20,
888
- T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28,
889
- T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36,
890
- T37 v37, T38 v38, T39 v39) {
891
- return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
892
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
893
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1,
894
- v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17,
895
- v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31,
896
- v32, v33, v34, v35, v36, v37, v38, v39);
897
- }
898
-
899
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
900
- typename T6, typename T7, typename T8, typename T9, typename T10,
901
- typename T11, typename T12, typename T13, typename T14, typename T15,
902
- typename T16, typename T17, typename T18, typename T19, typename T20,
903
- typename T21, typename T22, typename T23, typename T24, typename T25,
904
- typename T26, typename T27, typename T28, typename T29, typename T30,
905
- typename T31, typename T32, typename T33, typename T34, typename T35,
906
- typename T36, typename T37, typename T38, typename T39, typename T40>
907
- internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
908
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
909
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1,
910
- T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11,
911
- T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19,
912
- T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27,
913
- T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35,
914
- T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) {
915
- return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
916
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
917
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
918
- T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15,
919
- v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29,
920
- v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40);
921
- }
922
-
923
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
924
- typename T6, typename T7, typename T8, typename T9, typename T10,
925
- typename T11, typename T12, typename T13, typename T14, typename T15,
926
- typename T16, typename T17, typename T18, typename T19, typename T20,
927
- typename T21, typename T22, typename T23, typename T24, typename T25,
928
- typename T26, typename T27, typename T28, typename T29, typename T30,
929
- typename T31, typename T32, typename T33, typename T34, typename T35,
930
- typename T36, typename T37, typename T38, typename T39, typename T40,
931
- typename T41>
932
- internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
933
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
934
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40,
935
- T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
936
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
937
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
938
- T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
939
- T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) {
940
- return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
941
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
942
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
943
- T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14,
944
- v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28,
945
- v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41);
946
- }
947
-
948
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
949
- typename T6, typename T7, typename T8, typename T9, typename T10,
950
- typename T11, typename T12, typename T13, typename T14, typename T15,
951
- typename T16, typename T17, typename T18, typename T19, typename T20,
952
- typename T21, typename T22, typename T23, typename T24, typename T25,
953
- typename T26, typename T27, typename T28, typename T29, typename T30,
954
- typename T31, typename T32, typename T33, typename T34, typename T35,
955
- typename T36, typename T37, typename T38, typename T39, typename T40,
956
- typename T41, typename T42>
957
- internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
958
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
959
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41,
960
- T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
961
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
962
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
963
- T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
964
- T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
965
- T42 v42) {
966
- return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
967
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
968
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
969
- T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13,
970
- v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27,
971
- v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41,
972
- v42);
973
- }
974
-
975
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
976
- typename T6, typename T7, typename T8, typename T9, typename T10,
977
- typename T11, typename T12, typename T13, typename T14, typename T15,
978
- typename T16, typename T17, typename T18, typename T19, typename T20,
979
- typename T21, typename T22, typename T23, typename T24, typename T25,
980
- typename T26, typename T27, typename T28, typename T29, typename T30,
981
- typename T31, typename T32, typename T33, typename T34, typename T35,
982
- typename T36, typename T37, typename T38, typename T39, typename T40,
983
- typename T41, typename T42, typename T43>
984
- internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
985
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
986
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42,
987
- T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
988
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
989
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
990
- T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
991
- T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
992
- T42 v42, T43 v43) {
993
- return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
994
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
995
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
996
- T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12,
997
- v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
998
- v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40,
999
- v41, v42, v43);
1000
- }
1001
-
1002
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1003
- typename T6, typename T7, typename T8, typename T9, typename T10,
1004
- typename T11, typename T12, typename T13, typename T14, typename T15,
1005
- typename T16, typename T17, typename T18, typename T19, typename T20,
1006
- typename T21, typename T22, typename T23, typename T24, typename T25,
1007
- typename T26, typename T27, typename T28, typename T29, typename T30,
1008
- typename T31, typename T32, typename T33, typename T34, typename T35,
1009
- typename T36, typename T37, typename T38, typename T39, typename T40,
1010
- typename T41, typename T42, typename T43, typename T44>
1011
- internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1012
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1013
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1014
- T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1015
- T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1016
- T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1017
- T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1018
- T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41,
1019
- T42 v42, T43 v43, T44 v44) {
1020
- return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1021
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1022
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1023
- T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11,
1024
- v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25,
1025
- v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39,
1026
- v40, v41, v42, v43, v44);
1027
- }
1028
-
1029
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1030
- typename T6, typename T7, typename T8, typename T9, typename T10,
1031
- typename T11, typename T12, typename T13, typename T14, typename T15,
1032
- typename T16, typename T17, typename T18, typename T19, typename T20,
1033
- typename T21, typename T22, typename T23, typename T24, typename T25,
1034
- typename T26, typename T27, typename T28, typename T29, typename T30,
1035
- typename T31, typename T32, typename T33, typename T34, typename T35,
1036
- typename T36, typename T37, typename T38, typename T39, typename T40,
1037
- typename T41, typename T42, typename T43, typename T44, typename T45>
1038
- internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1039
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1040
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1041
- T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
1042
- T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
1043
- T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
1044
- T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1045
- T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40,
1046
- T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) {
1047
- return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1048
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1049
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1050
- T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
1051
- v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24,
1052
- v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38,
1053
- v39, v40, v41, v42, v43, v44, v45);
1054
- }
1055
-
1056
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1057
- typename T6, typename T7, typename T8, typename T9, typename T10,
1058
- typename T11, typename T12, typename T13, typename T14, typename T15,
1059
- typename T16, typename T17, typename T18, typename T19, typename T20,
1060
- typename T21, typename T22, typename T23, typename T24, typename T25,
1061
- typename T26, typename T27, typename T28, typename T29, typename T30,
1062
- typename T31, typename T32, typename T33, typename T34, typename T35,
1063
- typename T36, typename T37, typename T38, typename T39, typename T40,
1064
- typename T41, typename T42, typename T43, typename T44, typename T45,
1065
- typename T46>
1066
- internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1067
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1068
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1069
- T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1070
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1071
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1072
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1073
- T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1074
- T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) {
1075
- return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1076
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1077
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1078
- T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9,
1079
- v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1080
- v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1081
- v38, v39, v40, v41, v42, v43, v44, v45, v46);
1082
- }
1083
-
1084
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1085
- typename T6, typename T7, typename T8, typename T9, typename T10,
1086
- typename T11, typename T12, typename T13, typename T14, typename T15,
1087
- typename T16, typename T17, typename T18, typename T19, typename T20,
1088
- typename T21, typename T22, typename T23, typename T24, typename T25,
1089
- typename T26, typename T27, typename T28, typename T29, typename T30,
1090
- typename T31, typename T32, typename T33, typename T34, typename T35,
1091
- typename T36, typename T37, typename T38, typename T39, typename T40,
1092
- typename T41, typename T42, typename T43, typename T44, typename T45,
1093
- typename T46, typename T47>
1094
- internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1095
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1096
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1097
- T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
1098
- T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1099
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1100
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1101
- T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1102
- T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) {
1103
- return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1104
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1105
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1106
- T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8,
1107
- v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23,
1108
- v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37,
1109
- v38, v39, v40, v41, v42, v43, v44, v45, v46, v47);
1110
- }
1111
-
1112
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1113
- typename T6, typename T7, typename T8, typename T9, typename T10,
1114
- typename T11, typename T12, typename T13, typename T14, typename T15,
1115
- typename T16, typename T17, typename T18, typename T19, typename T20,
1116
- typename T21, typename T22, typename T23, typename T24, typename T25,
1117
- typename T26, typename T27, typename T28, typename T29, typename T30,
1118
- typename T31, typename T32, typename T33, typename T34, typename T35,
1119
- typename T36, typename T37, typename T38, typename T39, typename T40,
1120
- typename T41, typename T42, typename T43, typename T44, typename T45,
1121
- typename T46, typename T47, typename T48>
1122
- internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1123
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1124
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1125
- T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6,
1126
- T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15,
1127
- T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23,
1128
- T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31,
1129
- T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39,
1130
- T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47,
1131
- T48 v48) {
1132
- return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1133
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1134
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1135
- T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7,
1136
- v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22,
1137
- v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36,
1138
- v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48);
1139
- }
1140
-
1141
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1142
- typename T6, typename T7, typename T8, typename T9, typename T10,
1143
- typename T11, typename T12, typename T13, typename T14, typename T15,
1144
- typename T16, typename T17, typename T18, typename T19, typename T20,
1145
- typename T21, typename T22, typename T23, typename T24, typename T25,
1146
- typename T26, typename T27, typename T28, typename T29, typename T30,
1147
- typename T31, typename T32, typename T33, typename T34, typename T35,
1148
- typename T36, typename T37, typename T38, typename T39, typename T40,
1149
- typename T41, typename T42, typename T43, typename T44, typename T45,
1150
- typename T46, typename T47, typename T48, typename T49>
1151
- internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1152
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1153
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1154
- T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5,
1155
- T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14,
1156
- T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22,
1157
- T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30,
1158
- T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38,
1159
- T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46,
1160
- T47 v47, T48 v48, T49 v49) {
1161
- return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1162
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1163
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1164
- T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6,
1165
- v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21,
1166
- v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35,
1167
- v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49);
1168
- }
1169
-
1170
- template <typename T1, typename T2, typename T3, typename T4, typename T5,
1171
- typename T6, typename T7, typename T8, typename T9, typename T10,
1172
- typename T11, typename T12, typename T13, typename T14, typename T15,
1173
- typename T16, typename T17, typename T18, typename T19, typename T20,
1174
- typename T21, typename T22, typename T23, typename T24, typename T25,
1175
- typename T26, typename T27, typename T28, typename T29, typename T30,
1176
- typename T31, typename T32, typename T33, typename T34, typename T35,
1177
- typename T36, typename T37, typename T38, typename T39, typename T40,
1178
- typename T41, typename T42, typename T43, typename T44, typename T45,
1179
- typename T46, typename T47, typename T48, typename T49, typename T50>
1180
- internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13,
1181
- T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28,
1182
- T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43,
1183
- T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4,
1184
- T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13,
1185
- T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21,
1186
- T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29,
1187
- T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37,
1188
- T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45,
1189
- T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) {
1190
- return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11,
1191
- T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25,
1192
- T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39,
1193
- T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4,
1194
- v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19,
1195
- v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33,
1196
- v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47,
1197
- v48, v49, v50);
1198
- }
1199
-
1200
- // Bool() allows generating tests with parameters in a set of (false, true).
1201
- //
1202
- // Synopsis:
1203
- // Bool()
1204
- // - returns a generator producing sequences with elements {false, true}.
1205
- //
1206
- // It is useful when testing code that depends on Boolean flags. Combinations
1207
- // of multiple flags can be tested when several Bool()'s are combined using
1208
- // Combine() function.
1209
- //
1210
- // In the following example all tests in the test case FlagDependentTest
1211
- // will be instantiated twice with parameters false and true.
1212
- //
1213
- // class FlagDependentTest : public testing::TestWithParam<bool> {
1214
- // virtual void SetUp() {
1215
- // external_flag = GetParam();
1216
- // }
1217
- // }
1218
- // INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool());
1219
- //
1220
- inline internal::ParamGenerator<bool> Bool() {
1221
- return Values(false, true);
1222
- }
1223
-
1224
- # if GTEST_HAS_COMBINE
1225
- // Combine() allows the user to combine two or more sequences to produce
1226
- // values of a Cartesian product of those sequences' elements.
1227
- //
1228
- // Synopsis:
1229
- // Combine(gen1, gen2, ..., genN)
1230
- // - returns a generator producing sequences with elements coming from
1231
- // the Cartesian product of elements from the sequences generated by
1232
- // gen1, gen2, ..., genN. The sequence elements will have a type of
1233
- // tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types
1234
- // of elements from sequences produces by gen1, gen2, ..., genN.
1235
- //
1236
- // Combine can have up to 10 arguments. This number is currently limited
1237
- // by the maximum number of elements in the tuple implementation used by Google
1238
- // Test.
1239
- //
1240
- // Example:
1241
- //
1242
- // This will instantiate tests in test case AnimalTest each one with
1243
- // the parameter values tuple("cat", BLACK), tuple("cat", WHITE),
1244
- // tuple("dog", BLACK), and tuple("dog", WHITE):
1245
- //
1246
- // enum Color { BLACK, GRAY, WHITE };
1247
- // class AnimalTest
1248
- // : public testing::TestWithParam<tuple<const char*, Color> > {...};
1249
- //
1250
- // TEST_P(AnimalTest, AnimalLooksNice) {...}
1251
- //
1252
- // INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest,
1253
- // Combine(Values("cat", "dog"),
1254
- // Values(BLACK, WHITE)));
1255
- //
1256
- // This will instantiate tests in FlagDependentTest with all variations of two
1257
- // Boolean flags:
1258
- //
1259
- // class FlagDependentTest
1260
- // : public testing::TestWithParam<tuple(bool, bool)> > {
1261
- // virtual void SetUp() {
1262
- // // Assigns external_flag_1 and external_flag_2 values from the tuple.
1263
- // tie(external_flag_1, external_flag_2) = GetParam();
1264
- // }
1265
- // };
1266
- //
1267
- // TEST_P(FlagDependentTest, TestFeature1) {
1268
- // // Test your code using external_flag_1 and external_flag_2 here.
1269
- // }
1270
- // INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest,
1271
- // Combine(Bool(), Bool()));
1272
- //
1273
- template <typename Generator1, typename Generator2>
1274
- internal::CartesianProductHolder2<Generator1, Generator2> Combine(
1275
- const Generator1& g1, const Generator2& g2) {
1276
- return internal::CartesianProductHolder2<Generator1, Generator2>(
1277
- g1, g2);
1278
- }
1279
-
1280
- template <typename Generator1, typename Generator2, typename Generator3>
1281
- internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine(
1282
- const Generator1& g1, const Generator2& g2, const Generator3& g3) {
1283
- return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>(
1284
- g1, g2, g3);
1285
- }
1286
-
1287
- template <typename Generator1, typename Generator2, typename Generator3,
1288
- typename Generator4>
1289
- internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1290
- Generator4> Combine(
1291
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1292
- const Generator4& g4) {
1293
- return internal::CartesianProductHolder4<Generator1, Generator2, Generator3,
1294
- Generator4>(
1295
- g1, g2, g3, g4);
1296
- }
1297
-
1298
- template <typename Generator1, typename Generator2, typename Generator3,
1299
- typename Generator4, typename Generator5>
1300
- internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1301
- Generator4, Generator5> Combine(
1302
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1303
- const Generator4& g4, const Generator5& g5) {
1304
- return internal::CartesianProductHolder5<Generator1, Generator2, Generator3,
1305
- Generator4, Generator5>(
1306
- g1, g2, g3, g4, g5);
1307
- }
1308
-
1309
- template <typename Generator1, typename Generator2, typename Generator3,
1310
- typename Generator4, typename Generator5, typename Generator6>
1311
- internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1312
- Generator4, Generator5, Generator6> Combine(
1313
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1314
- const Generator4& g4, const Generator5& g5, const Generator6& g6) {
1315
- return internal::CartesianProductHolder6<Generator1, Generator2, Generator3,
1316
- Generator4, Generator5, Generator6>(
1317
- g1, g2, g3, g4, g5, g6);
1318
- }
1319
-
1320
- template <typename Generator1, typename Generator2, typename Generator3,
1321
- typename Generator4, typename Generator5, typename Generator6,
1322
- typename Generator7>
1323
- internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1324
- Generator4, Generator5, Generator6, Generator7> Combine(
1325
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1326
- const Generator4& g4, const Generator5& g5, const Generator6& g6,
1327
- const Generator7& g7) {
1328
- return internal::CartesianProductHolder7<Generator1, Generator2, Generator3,
1329
- Generator4, Generator5, Generator6, Generator7>(
1330
- g1, g2, g3, g4, g5, g6, g7);
1331
- }
1332
-
1333
- template <typename Generator1, typename Generator2, typename Generator3,
1334
- typename Generator4, typename Generator5, typename Generator6,
1335
- typename Generator7, typename Generator8>
1336
- internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1337
- Generator4, Generator5, Generator6, Generator7, Generator8> Combine(
1338
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1339
- const Generator4& g4, const Generator5& g5, const Generator6& g6,
1340
- const Generator7& g7, const Generator8& g8) {
1341
- return internal::CartesianProductHolder8<Generator1, Generator2, Generator3,
1342
- Generator4, Generator5, Generator6, Generator7, Generator8>(
1343
- g1, g2, g3, g4, g5, g6, g7, g8);
1344
- }
1345
-
1346
- template <typename Generator1, typename Generator2, typename Generator3,
1347
- typename Generator4, typename Generator5, typename Generator6,
1348
- typename Generator7, typename Generator8, typename Generator9>
1349
- internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1350
- Generator4, Generator5, Generator6, Generator7, Generator8,
1351
- Generator9> Combine(
1352
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1353
- const Generator4& g4, const Generator5& g5, const Generator6& g6,
1354
- const Generator7& g7, const Generator8& g8, const Generator9& g9) {
1355
- return internal::CartesianProductHolder9<Generator1, Generator2, Generator3,
1356
- Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>(
1357
- g1, g2, g3, g4, g5, g6, g7, g8, g9);
1358
- }
1359
-
1360
- template <typename Generator1, typename Generator2, typename Generator3,
1361
- typename Generator4, typename Generator5, typename Generator6,
1362
- typename Generator7, typename Generator8, typename Generator9,
1363
- typename Generator10>
1364
- internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1365
- Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1366
- Generator10> Combine(
1367
- const Generator1& g1, const Generator2& g2, const Generator3& g3,
1368
- const Generator4& g4, const Generator5& g5, const Generator6& g6,
1369
- const Generator7& g7, const Generator8& g8, const Generator9& g9,
1370
- const Generator10& g10) {
1371
- return internal::CartesianProductHolder10<Generator1, Generator2, Generator3,
1372
- Generator4, Generator5, Generator6, Generator7, Generator8, Generator9,
1373
- Generator10>(
1374
- g1, g2, g3, g4, g5, g6, g7, g8, g9, g10);
1375
- }
1376
- # endif // GTEST_HAS_COMBINE
1377
-
1378
-
1379
-
1380
- # define TEST_P(test_case_name, test_name) \
1381
- class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \
1382
- : public test_case_name { \
1383
- public: \
1384
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \
1385
- virtual void TestBody(); \
1386
- private: \
1387
- static int AddToRegistry() { \
1388
- ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1389
- GetTestCasePatternHolder<test_case_name>(\
1390
- #test_case_name, __FILE__, __LINE__)->AddTestPattern(\
1391
- #test_case_name, \
1392
- #test_name, \
1393
- new ::testing::internal::TestMetaFactory< \
1394
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \
1395
- return 0; \
1396
- } \
1397
- static int gtest_registering_dummy_; \
1398
- GTEST_DISALLOW_COPY_AND_ASSIGN_(\
1399
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \
1400
- }; \
1401
- int GTEST_TEST_CLASS_NAME_(test_case_name, \
1402
- test_name)::gtest_registering_dummy_ = \
1403
- GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
1404
- void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody()
1405
-
1406
- # define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \
1407
- ::testing::internal::ParamGenerator<test_case_name::ParamType> \
1408
- gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \
1409
- int gtest_##prefix##test_case_name##_dummy_ = \
1410
- ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \
1411
- GetTestCasePatternHolder<test_case_name>(\
1412
- #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\
1413
- #prefix, \
1414
- &gtest_##prefix##test_case_name##_EvalGenerator_, \
1415
- __FILE__, __LINE__)
1416
-
1417
- } // namespace testing
1418
-
1419
- #endif // GTEST_HAS_PARAM_TEST
1420
-
1421
- #endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_