diff options
| -rw-r--r-- | googletest/include/gtest/gtest-param-test.h | 855 | ||||
| -rw-r--r-- | googletest/include/gtest/gtest-param-test.h.pump | 13 | ||||
| -rw-r--r-- | googletest/include/gtest/internal/gtest-param-util-generated.h | 3507 | ||||
| -rw-r--r-- | googletest/include/gtest/internal/gtest-param-util-generated.h.pump | 46 | ||||
| -rw-r--r-- | googletest/include/gtest/internal/gtest-param-util.h | 63 | ||||
| -rw-r--r-- | googletest/test/googletest-param-test-test.cc | 12 | 
6 files changed, 79 insertions, 4417 deletions
diff --git a/googletest/include/gtest/gtest-param-test.h b/googletest/include/gtest/gtest-param-test.h index 093e6e63..8cc3dd74 100644 --- a/googletest/include/gtest/gtest-param-test.h +++ b/googletest/include/gtest/gtest-param-test.h @@ -336,859 +336,10 @@ internal::ParamGenerator<typename Container::value_type> ValuesIn(  //  // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));  // -// Currently, Values() supports from 1 to 50 parameters.  // -template <typename T1> -internal::ValueArray1<T1> Values(T1 v1) { -  return internal::ValueArray1<T1>(v1); -} - -template <typename T1, typename T2> -internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) { -  return internal::ValueArray2<T1, T2>(v1, v2); -} - -template <typename T1, typename T2, typename T3> -internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) { -  return internal::ValueArray3<T1, T2, T3>(v1, v2, v3); -} - -template <typename T1, typename T2, typename T3, typename T4> -internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) { -  return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5> -internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5) { -  return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6> -internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6) { -  return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7> -internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7) { -  return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5, -      v6, v7); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8> -internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) { -  return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4, -      v5, v6, v7, v8); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9> -internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) { -  return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10> -internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) { -  return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11> -internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, -    T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11) { -  return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, -      T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12> -internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -    T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12) { -  return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13> -internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, -    T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13) { -  return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14> -internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) { -  return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15> -internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) { -  return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16> -internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16) { -  return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17> -internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17) { -  return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18> -internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18) { -  return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19> -internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) { -  return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20> -internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) { -  return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21> -internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) { -  return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22> -internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22) { -  return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23> -internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23) { -  return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24> -internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24) { -  return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2, -      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, -      v19, v20, v21, v22, v23, v24); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25> -internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, -    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, -    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) { -  return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, -      v18, v19, v20, v21, v22, v23, v24, v25); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26> -internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -    T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26) { -  return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, -      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27> -internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, -    T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27) { -  return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, -      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28> -internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, -    T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28) { -  return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, -      v28); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29> -internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29) { -  return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, -      v27, v28, v29); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30> -internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) { -  return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, -      v26, v27, v28, v29, v30); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31> -internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) { -  return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, -      v25, v26, v27, v28, v29, v30, v31); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32> -internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32) { -  return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33> -internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33) { -  return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34> -internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, -    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, -    T31 v31, T32 v32, T33 v33, T34 v34) { -  return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, -      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35> -internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) { -  return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, -      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36> -internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) { -  return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37> -internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37) { -  return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36, v37); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38> -internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37, T38 v38) { -  return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2, -      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, -      v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, -      v33, v34, v35, v36, v37, v38); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39> -internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37, T38 v38, T39 v39) { -  return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, -      v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, -      v32, v33, v34, v35, v36, v37, v38, v39); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40> -internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, -    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, -    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, -    T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, -    T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) { -  return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, -      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, -      v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41> -internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, -    T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) { -  return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, -      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, -      v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42> -internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, -    T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42) { -  return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, -      v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, -      v42); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43> -internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, -    T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42, T43 v43) { -  return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, -      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, -      v41, v42, v43); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44> -internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42, T43 v43, T44 v44) { -  return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, -      v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, -      v40, v41, v42, v43, v44); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45> -internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, -    T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, -    T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) { -  return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, -      v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, -      v39, v40, v41, v42, v43, v44, v45); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46> -internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) { -  return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, -      v38, v39, v40, v41, v42, v43, v44, v45, v46); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47> -internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) { -  return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, -      v38, v39, v40, v41, v42, v43, v44, v45, v46, v47); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48> -internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, -    T48 v48) { -  return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, -      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, -      v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49> -internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, -    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, -    T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, -    T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, -    T47 v47, T48 v48, T49 v49) { -  return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, -      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, -      v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49, typename T50> -internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, -    T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, -    T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) { -  return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, -      v48, v49, v50); +template <typename... T> +internal::ValueArray<T...> Values(T... v) { +  return internal::ValueArray<T...>(std::move(v)...);  }  // Bool() allows generating tests with parameters in a set of (false, true). diff --git a/googletest/include/gtest/gtest-param-test.h.pump b/googletest/include/gtest/gtest-param-test.h.pump index 63c31c25..bb848ec3 100644 --- a/googletest/include/gtest/gtest-param-test.h.pump +++ b/googletest/include/gtest/gtest-param-test.h.pump @@ -335,19 +335,12 @@ internal::ParamGenerator<typename Container::value_type> ValuesIn(  //  // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));  // -// Currently, Values() supports from 1 to $n parameters.  // -$range i 1..n -$for i [[ -$range j 1..i - -template <$for j, [[typename T$j]]> -internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) { -  return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]); +template <typename... T> +internal::ValueArray<T...> Values(T... v) { +  return internal::ValueArray<T...>(std::move(v)...);  } -]] -  // Bool() allows generating tests with parameters in a set of (false, true).  //  // Synopsis: diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h b/googletest/include/gtest/internal/gtest-param-util-generated.h index d9d20c42..78bf65f6 100644 --- a/googletest/include/gtest/internal/gtest-param-util-generated.h +++ b/googletest/include/gtest/internal/gtest-param-util-generated.h @@ -52,3514 +52,7 @@  namespace testing { -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template <typename ForwardIterator> -internal::ParamGenerator< -  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end); - -template <typename T, size_t N> -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]); - -template <class Container> -internal::ParamGenerator<typename Container::value_type> ValuesIn( -    const Container& container); -  namespace internal { - -// Used in the Values() function to provide polymorphic capabilities. -template <typename T1> -class ValueArray1 { - public: -  explicit ValueArray1(T1 v1) : v1_(v1) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_)}; -    return ValuesIn(array); -  } - -  ValueArray1(const ValueArray1& other) : v1_(other.v1_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray1& other); - -  const T1 v1_; -}; - -template <typename T1, typename T2> -class ValueArray2 { - public: -  ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)}; -    return ValuesIn(array); -  } - -  ValueArray2(const ValueArray2& other) : v1_(other.v1_), v2_(other.v2_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray2& other); - -  const T1 v1_; -  const T2 v2_; -}; - -template <typename T1, typename T2, typename T3> -class ValueArray3 { - public: -  ValueArray3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_)}; -    return ValuesIn(array); -  } - -  ValueArray3(const ValueArray3& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray3& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -}; - -template <typename T1, typename T2, typename T3, typename T4> -class ValueArray4 { - public: -  ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_)}; -    return ValuesIn(array); -  } - -  ValueArray4(const ValueArray4& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray4& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5> -class ValueArray5 { - public: -  ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_)}; -    return ValuesIn(array); -  } - -  ValueArray5(const ValueArray5& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray5& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6> -class ValueArray6 { - public: -  ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_)}; -    return ValuesIn(array); -  } - -  ValueArray6(const ValueArray6& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray6& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7> -class ValueArray7 { - public: -  ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_)}; -    return ValuesIn(array); -  } - -  ValueArray7(const ValueArray7& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray7& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8> -class ValueArray8 { - public: -  ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -      T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_)}; -    return ValuesIn(array); -  } - -  ValueArray8(const ValueArray8& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray8& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9> -class ValueArray9 { - public: -  ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -      T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_)}; -    return ValuesIn(array); -  } - -  ValueArray9(const ValueArray9& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray9& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10> -class ValueArray10 { - public: -  ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_)}; -    return ValuesIn(array); -  } - -  ValueArray10(const ValueArray10& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray10& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11> -class ValueArray11 { - public: -  ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_)}; -    return ValuesIn(array); -  } - -  ValueArray11(const ValueArray11& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray11& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12> -class ValueArray12 { - public: -  ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_)}; -    return ValuesIn(array); -  } - -  ValueArray12(const ValueArray12& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray12& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13> -class ValueArray13 { - public: -  ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_)}; -    return ValuesIn(array); -  } - -  ValueArray13(const ValueArray13& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray13& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14> -class ValueArray14 { - public: -  ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_)}; -    return ValuesIn(array); -  } - -  ValueArray14(const ValueArray14& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray14& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15> -class ValueArray15 { - public: -  ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_)}; -    return ValuesIn(array); -  } - -  ValueArray15(const ValueArray15& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray15& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16> -class ValueArray16 { - public: -  ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_)}; -    return ValuesIn(array); -  } - -  ValueArray16(const ValueArray16& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray16& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17> -class ValueArray17 { - public: -  ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -      T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_)}; -    return ValuesIn(array); -  } - -  ValueArray17(const ValueArray17& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray17& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18> -class ValueArray18 { - public: -  ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_)}; -    return ValuesIn(array); -  } - -  ValueArray18(const ValueArray18& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray18& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19> -class ValueArray19 { - public: -  ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_)}; -    return ValuesIn(array); -  } - -  ValueArray19(const ValueArray19& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray19& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20> -class ValueArray20 { - public: -  ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_)}; -    return ValuesIn(array); -  } - -  ValueArray20(const ValueArray20& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray20& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21> -class ValueArray21 { - public: -  ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_)}; -    return ValuesIn(array); -  } - -  ValueArray21(const ValueArray21& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray21& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22> -class ValueArray22 { - public: -  ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_)}; -    return ValuesIn(array); -  } - -  ValueArray22(const ValueArray22& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray22& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23> -class ValueArray23 { - public: -  ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_)}; -    return ValuesIn(array); -  } - -  ValueArray23(const ValueArray23& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray23& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24> -class ValueArray24 { - public: -  ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_)}; -    return ValuesIn(array); -  } - -  ValueArray24(const ValueArray24& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray24& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25> -class ValueArray25 { - public: -  ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -      T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_)}; -    return ValuesIn(array); -  } - -  ValueArray25(const ValueArray25& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray25& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26> -class ValueArray26 { - public: -  ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_)}; -    return ValuesIn(array); -  } - -  ValueArray26(const ValueArray26& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray26& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27> -class ValueArray27 { - public: -  ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_)}; -    return ValuesIn(array); -  } - -  ValueArray27(const ValueArray27& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray27& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28> -class ValueArray28 { - public: -  ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_)}; -    return ValuesIn(array); -  } - -  ValueArray28(const ValueArray28& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray28& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29> -class ValueArray29 { - public: -  ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_)}; -    return ValuesIn(array); -  } - -  ValueArray29(const ValueArray29& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray29& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30> -class ValueArray30 { - public: -  ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_)}; -    return ValuesIn(array); -  } - -  ValueArray30(const ValueArray30& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray30& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31> -class ValueArray31 { - public: -  ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_)}; -    return ValuesIn(array); -  } - -  ValueArray31(const ValueArray31& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray31& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32> -class ValueArray32 { - public: -  ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_)}; -    return ValuesIn(array); -  } - -  ValueArray32(const ValueArray32& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray32& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33> -class ValueArray33 { - public: -  ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, -      T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_)}; -    return ValuesIn(array); -  } - -  ValueArray33(const ValueArray33& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray33& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34> -class ValueArray34 { - public: -  ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_)}; -    return ValuesIn(array); -  } - -  ValueArray34(const ValueArray34& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray34& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35> -class ValueArray35 { - public: -  ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), -      v32_(v32), v33_(v33), v34_(v34), v35_(v35) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_)}; -    return ValuesIn(array); -  } - -  ValueArray35(const ValueArray35& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray35& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36> -class ValueArray36 { - public: -  ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), -      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_)}; -    return ValuesIn(array); -  } - -  ValueArray36(const ValueArray36& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray36& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37> -class ValueArray37 { - public: -  ValueArray37(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), -      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), -      v36_(v36), v37_(v37) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_)}; -    return ValuesIn(array); -  } - -  ValueArray37(const ValueArray37& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray37& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38> -class ValueArray38 { - public: -  ValueArray38(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_)}; -    return ValuesIn(array); -  } - -  ValueArray38(const ValueArray38& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray38& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39> -class ValueArray39 { - public: -  ValueArray39(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_)}; -    return ValuesIn(array); -  } - -  ValueArray39(const ValueArray39& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray39& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40> -class ValueArray40 { - public: -  ValueArray40(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), -      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), -      v40_(v40) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_)}; -    return ValuesIn(array); -  } - -  ValueArray40(const ValueArray40& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray40& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41> -class ValueArray41 { - public: -  ValueArray41(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, -      T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_)}; -    return ValuesIn(array); -  } - -  ValueArray41(const ValueArray41& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray41& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42> -class ValueArray42 { - public: -  ValueArray42(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_)}; -    return ValuesIn(array); -  } - -  ValueArray42(const ValueArray42& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray42& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43> -class ValueArray43 { - public: -  ValueArray43(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), -      v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), -      v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_)}; -    return ValuesIn(array); -  } - -  ValueArray43(const ValueArray43& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray43& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44> -class ValueArray44 { - public: -  ValueArray44(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), -      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), -      v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), -      v43_(v43), v44_(v44) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_)}; -    return ValuesIn(array); -  } - -  ValueArray44(const ValueArray44& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray44& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45> -class ValueArray45 { - public: -  ValueArray45(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), -      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), -      v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), -      v42_(v42), v43_(v43), v44_(v44), v45_(v45) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_)}; -    return ValuesIn(array); -  } - -  ValueArray45(const ValueArray45& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray45& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46> -class ValueArray46 { - public: -  ValueArray46(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), -      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_)}; -    return ValuesIn(array); -  } - -  ValueArray46(const ValueArray46& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray46& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47> -class ValueArray47 { - public: -  ValueArray47(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), -      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46), -      v47_(v47) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_)}; -    return ValuesIn(array); -  } - -  ValueArray47(const ValueArray47& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray47& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48> -class ValueArray48 { - public: -  ValueArray48(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), -      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), -      v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), -      v46_(v46), v47_(v47), v48_(v48) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_)}; -    return ValuesIn(array); -  } - -  ValueArray48(const ValueArray48& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray48& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49> -class ValueArray49 { - public: -  ValueArray49(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, -      T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), -      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_), static_cast<T>(v49_)}; -    return ValuesIn(array); -  } - -  ValueArray49(const ValueArray49& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_), v49_(other.v49_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray49& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -  const T49 v49_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49, typename T50> -class ValueArray50 { - public: -  ValueArray50(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49, -      T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), -      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_), static_cast<T>(v49_), static_cast<T>(v50_)}; -    return ValuesIn(array); -  } - -  ValueArray50(const ValueArray50& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_), v49_(other.v49_), v50_(other.v50_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray50& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -  const T49 v49_; -  const T50 v50_; -}; -  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.  //  // Generates values from the Cartesian product of values produced diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump index 5f882608..67d1b34b 100644 --- a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +++ b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump @@ -51,53 +51,7 @@ $var maxtuple = 10  $$ Maximum number of Combine arguments we want to support.  namespace testing { -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template <typename ForwardIterator> -internal::ParamGenerator< -  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end); - -template <typename T, size_t N> -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]); - -template <class Container> -internal::ParamGenerator<typename Container::value_type> ValuesIn( -    const Container& container); -  namespace internal { - -// Used in the Values() function to provide polymorphic capabilities. -$range i 1..n -$for i [[ -$range j 1..i - -template <$for j, [[typename T$j]]> -class ValueArray$i { - public: -  $if i==1 [[explicit ]]ValueArray$i($for j, [[T$j v$j]]) : $for j, [[v$(j)_(v$j)]] {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {$for j, [[static_cast<T>(v$(j)_)]]}; -    return ValuesIn(array); -  } - -  ValueArray$i(const ValueArray$i& other) : $for j, [[v$(j)_(other.v$(j)_)]] {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray$i& other); - -$for j [[ - -  const T$j v$(j)_; -]] - -}; - -]] -  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.  //  // Generates values from the Cartesian product of values produced diff --git a/googletest/include/gtest/internal/gtest-param-util.h b/googletest/include/gtest/internal/gtest-param-util.h index 3e810f20..2dea63cc 100644 --- a/googletest/include/gtest/internal/gtest-param-util.h +++ b/googletest/include/gtest/internal/gtest-param-util.h @@ -39,6 +39,7 @@  #include <iterator>  #include <set> +#include <tuple>  #include <utility>  #include <vector> @@ -48,7 +49,6 @@  #include "gtest/gtest-printers.h"  namespace testing { -  // Input to a parameterized test name generator, describing a test parameter.  // Consists of the parameter value and the integer parameter index.  template <class ParamType> @@ -72,7 +72,29 @@ struct PrintToStringParamName {  namespace internal {  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// +// Utility Functions + +// Block of code creating for_each_in_tuple +template <int... Is> +struct sequence {}; + +template <int N, int... Is> +struct generate_sequence : generate_sequence<N - 1, N - 1, Is...> {}; + +template <int... Is> +struct generate_sequence<0, Is...> : sequence<Is...> {}; + +template <typename T, typename F, int... Is> +void ForEachInTupleImpl(T&& t, F f_gtest, sequence<Is...>) { +  int l[] = {(f_gtest(std::get<Is>(t)), 0)...}; +  (void)l;  // silence "unused variable warning" +} +template <typename... T, typename F> +void ForEachInTuple(const std::tuple<T...>& t, F f_gtest) { +  internal::ForEachInTupleImpl(t, f_gtest, +                               internal::generate_sequence<sizeof...(T)>()); +} +  // Outputs a message explaining invalid registration of different  // fixture class for the same test case. This may happen when  // TEST_P macro is used to define two tests with the same name @@ -715,6 +737,43 @@ class ParameterizedTestCaseRegistry {  };  }  // namespace internal + +// Forward declarations of ValuesIn(), which is implemented in +// include/gtest/gtest-param-test.h. +template <class Container> +internal::ParamGenerator<typename Container::value_type> ValuesIn( +    const Container& container); + +namespace internal { +// Used in the Values() function to provide polymorphic capabilities. + +template <typename T> +struct PushBack { +  template <typename U> +  void operator()(const U& u) { +    v_.push_back(static_cast<T>(u)); +  } +  std::vector<T>& v_; +}; + +template <typename... Ts> +class ValueArray { + public: +  ValueArray(Ts... v) : v_{std::move(v)...} {} + +  template <typename Tn> +  operator ParamGenerator<Tn>() const { +    std::vector<Tn> vc_accumulate; +    PushBack<Tn> fnc{vc_accumulate}; +    ForEachInTuple(v_, fnc); +    return ValuesIn(std::move(vc_accumulate)); +  } + + private: +  std::tuple<Ts...> v_; +}; + +}  // namespace internal  }  // namespace testing  #endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ diff --git a/googletest/test/googletest-param-test-test.cc b/googletest/test/googletest-param-test-test.cc index c78623a4..04b92ca9 100644 --- a/googletest/test/googletest-param-test-test.cc +++ b/googletest/test/googletest-param-test-test.cc @@ -1031,6 +1031,18 @@ TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) {  INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5)); +// Tests param generator working with Enums +enum MyEnums { +  ENUM1 = 1, +  ENUM2 = 3, +  ENUM3 = 8, +}; + +class MyEnumTest : public testing::TestWithParam<MyEnums> {}; + +TEST_P(MyEnumTest, ChecksParamMoreThanZero) { EXPECT_GE(10, GetParam()); } +INSTANTIATE_TEST_CASE_P(MyEnumTests, MyEnumTest, +                        ::testing::Values(ENUM1, ENUM2, 0));  int main(int argc, char **argv) {    // Used in TestGenerationTest test case.  | 
