| Index: third_party/gtest/include/gtest/internal/gtest-param-util-generated.h
|
| diff --git a/third_party/gtest/include/gtest/internal/gtest-param-util-generated.h b/third_party/gtest/include/gtest/internal/gtest-param-util-generated.h
|
| deleted file mode 100644
|
| index ab4ab56625642d2558fd38b18ced06d0351ec1f4..0000000000000000000000000000000000000000
|
| --- a/third_party/gtest/include/gtest/internal/gtest-param-util-generated.h
|
| +++ /dev/null
|
| @@ -1,4820 +0,0 @@
|
| -// This file was GENERATED by a script. DO NOT EDIT BY HAND!!!
|
| -
|
| -// Copyright 2008 Google Inc.
|
| -// All Rights Reserved.
|
| -//
|
| -// Redistribution and use in source and binary forms, with or without
|
| -// modification, are permitted provided that the following conditions are
|
| -// met:
|
| -//
|
| -// * Redistributions of source code must retain the above copyright
|
| -// notice, this list of conditions and the following disclaimer.
|
| -// * Redistributions in binary form must reproduce the above
|
| -// copyright notice, this list of conditions and the following disclaimer
|
| -// in the documentation and/or other materials provided with the
|
| -// distribution.
|
| -// * Neither the name of Google Inc. nor the names of its
|
| -// contributors may be used to endorse or promote products derived from
|
| -// this software without specific prior written permission.
|
| -//
|
| -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -//
|
| -// Author: vladl@google.com (Vlad Losev)
|
| -
|
| -// Type and function utilities for implementing parameterized tests.
|
| -// This file is generated by a SCRIPT. DO NOT EDIT BY HAND!
|
| -//
|
| -// Currently Google Test supports at most 50 arguments in Values,
|
| -// and at most 10 arguments in Combine. Please contact
|
| -// googletestframework@googlegroups.com if you need more.
|
| -// Please note that the number of arguments to Combine is limited
|
| -// by the maximum arity of the implementation of tr1::tuple which is
|
| -// currently set at 10.
|
| -
|
| -#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
|
| -#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
|
| -
|
| -// scripts/fuse_gtest.py depends on gtest's own header being #included
|
| -// *unconditionally*. Therefore these #includes cannot be moved
|
| -// inside #if GTEST_HAS_PARAM_TEST.
|
| -#include <gtest/internal/gtest-param-util.h>
|
| -#include <gtest/internal/gtest-port.h>
|
| -
|
| -#if GTEST_HAS_PARAM_TEST
|
| -
|
| -namespace testing {
|
| -
|
| -// Forward declarations of ValuesIn(), which is implemented in
|
| -// include/gtest/gtest-param-test.h.
|
| -template <typename ForwardIterator>
|
| -internal::ParamGenerator<
|
| - typename ::std::iterator_traits<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 { return ValuesIn(&v1_, &v1_ + 1); }
|
| -
|
| - 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[] = {v1_, v2_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_,
|
| - v23_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
|
| - v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
|
| - v24_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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[] = {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_};
|
| - return ValuesIn(array);
|
| - }
|
| -
|
| - 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_;
|
| -};
|
| -
|
| -#if GTEST_HAS_COMBINE
|
| -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
|
| -//
|
| -// Generates values from the Cartesian product of values produced
|
| -// by the argument generators.
|
| -//
|
| -template <typename T1, typename T2>
|
| -class CartesianProductGenerator2
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2> ParamType;
|
| -
|
| - CartesianProductGenerator2(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2)
|
| - : g1_(g1), g2_(g2) {}
|
| - virtual ~CartesianProductGenerator2() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current2_;
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator2::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator2& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| -}; // class CartesianProductGenerator2
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3>
|
| -class CartesianProductGenerator3
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3> ParamType;
|
| -
|
| - CartesianProductGenerator3(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3)
|
| - : g1_(g1), g2_(g2), g3_(g3) {}
|
| - virtual ~CartesianProductGenerator3() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current3_;
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator3::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator3& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| -}; // class CartesianProductGenerator3
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4>
|
| -class CartesianProductGenerator4
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4> ParamType;
|
| -
|
| - CartesianProductGenerator4(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
|
| - virtual ~CartesianProductGenerator4() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current4_;
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator4::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator4& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| -}; // class CartesianProductGenerator4
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5>
|
| -class CartesianProductGenerator5
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5> ParamType;
|
| -
|
| - CartesianProductGenerator5(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
|
| - virtual ~CartesianProductGenerator5() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current5_;
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator5::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator5& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| -}; // class CartesianProductGenerator5
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6>
|
| -class CartesianProductGenerator6
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5,
|
| - T6> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> ParamType;
|
| -
|
| - CartesianProductGenerator6(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
|
| - const ParamGenerator<T6>& g6)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
|
| - virtual ~CartesianProductGenerator6() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5,
|
| - const ParamGenerator<T6>& g6,
|
| - const typename ParamGenerator<T6>::iterator& current6)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
|
| - begin6_(g6.begin()), end6_(g6.end()), current6_(current6) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current6_;
|
| - if (current6_ == end6_) {
|
| - current6_ = begin6_;
|
| - ++current5_;
|
| - }
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_ &&
|
| - current6_ == typed_other->current6_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_),
|
| - begin6_(other.begin6_),
|
| - end6_(other.end6_),
|
| - current6_(other.current6_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_, *current6_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_ ||
|
| - current6_ == end6_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - const typename ParamGenerator<T6>::iterator begin6_;
|
| - const typename ParamGenerator<T6>::iterator end6_;
|
| - typename ParamGenerator<T6>::iterator current6_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator6::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator6& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| - const ParamGenerator<T6> g6_;
|
| -}; // class CartesianProductGenerator6
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7>
|
| -class CartesianProductGenerator7
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
|
| - T7> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7> ParamType;
|
| -
|
| - CartesianProductGenerator7(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
|
| - const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
|
| - virtual ~CartesianProductGenerator7() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
|
| - g7_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5,
|
| - const ParamGenerator<T6>& g6,
|
| - const typename ParamGenerator<T6>::iterator& current6,
|
| - const ParamGenerator<T7>& g7,
|
| - const typename ParamGenerator<T7>::iterator& current7)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
|
| - begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
|
| - begin7_(g7.begin()), end7_(g7.end()), current7_(current7) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current7_;
|
| - if (current7_ == end7_) {
|
| - current7_ = begin7_;
|
| - ++current6_;
|
| - }
|
| - if (current6_ == end6_) {
|
| - current6_ = begin6_;
|
| - ++current5_;
|
| - }
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_ &&
|
| - current6_ == typed_other->current6_ &&
|
| - current7_ == typed_other->current7_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_),
|
| - begin6_(other.begin6_),
|
| - end6_(other.end6_),
|
| - current6_(other.current6_),
|
| - begin7_(other.begin7_),
|
| - end7_(other.end7_),
|
| - current7_(other.current7_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_, *current6_, *current7_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_ ||
|
| - current6_ == end6_ ||
|
| - current7_ == end7_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - const typename ParamGenerator<T6>::iterator begin6_;
|
| - const typename ParamGenerator<T6>::iterator end6_;
|
| - typename ParamGenerator<T6>::iterator current6_;
|
| - const typename ParamGenerator<T7>::iterator begin7_;
|
| - const typename ParamGenerator<T7>::iterator end7_;
|
| - typename ParamGenerator<T7>::iterator current7_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator7::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator7& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| - const ParamGenerator<T6> g6_;
|
| - const ParamGenerator<T7> g7_;
|
| -}; // class CartesianProductGenerator7
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8>
|
| -class CartesianProductGenerator8
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
|
| - T7, T8> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8> ParamType;
|
| -
|
| - CartesianProductGenerator8(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
|
| - const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
|
| - const ParamGenerator<T8>& g8)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
|
| - g8_(g8) {}
|
| - virtual ~CartesianProductGenerator8() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
|
| - g7_.begin(), g8_, g8_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
|
| - g8_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5,
|
| - const ParamGenerator<T6>& g6,
|
| - const typename ParamGenerator<T6>::iterator& current6,
|
| - const ParamGenerator<T7>& g7,
|
| - const typename ParamGenerator<T7>::iterator& current7,
|
| - const ParamGenerator<T8>& g8,
|
| - const typename ParamGenerator<T8>::iterator& current8)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
|
| - begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
|
| - begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
|
| - begin8_(g8.begin()), end8_(g8.end()), current8_(current8) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current8_;
|
| - if (current8_ == end8_) {
|
| - current8_ = begin8_;
|
| - ++current7_;
|
| - }
|
| - if (current7_ == end7_) {
|
| - current7_ = begin7_;
|
| - ++current6_;
|
| - }
|
| - if (current6_ == end6_) {
|
| - current6_ = begin6_;
|
| - ++current5_;
|
| - }
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_ &&
|
| - current6_ == typed_other->current6_ &&
|
| - current7_ == typed_other->current7_ &&
|
| - current8_ == typed_other->current8_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_),
|
| - begin6_(other.begin6_),
|
| - end6_(other.end6_),
|
| - current6_(other.current6_),
|
| - begin7_(other.begin7_),
|
| - end7_(other.end7_),
|
| - current7_(other.current7_),
|
| - begin8_(other.begin8_),
|
| - end8_(other.end8_),
|
| - current8_(other.current8_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_, *current6_, *current7_, *current8_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_ ||
|
| - current6_ == end6_ ||
|
| - current7_ == end7_ ||
|
| - current8_ == end8_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - const typename ParamGenerator<T6>::iterator begin6_;
|
| - const typename ParamGenerator<T6>::iterator end6_;
|
| - typename ParamGenerator<T6>::iterator current6_;
|
| - const typename ParamGenerator<T7>::iterator begin7_;
|
| - const typename ParamGenerator<T7>::iterator end7_;
|
| - typename ParamGenerator<T7>::iterator current7_;
|
| - const typename ParamGenerator<T8>::iterator begin8_;
|
| - const typename ParamGenerator<T8>::iterator end8_;
|
| - typename ParamGenerator<T8>::iterator current8_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator8::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator8& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| - const ParamGenerator<T6> g6_;
|
| - const ParamGenerator<T7> g7_;
|
| - const ParamGenerator<T8> g8_;
|
| -}; // class CartesianProductGenerator8
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8, typename T9>
|
| -class CartesianProductGenerator9
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
|
| - T7, T8, T9> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9> ParamType;
|
| -
|
| - CartesianProductGenerator9(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
|
| - const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
|
| - const ParamGenerator<T8>& g8, const ParamGenerator<T9>& g9)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
|
| - g9_(g9) {}
|
| - virtual ~CartesianProductGenerator9() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
|
| - g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
|
| - g8_.end(), g9_, g9_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5,
|
| - const ParamGenerator<T6>& g6,
|
| - const typename ParamGenerator<T6>::iterator& current6,
|
| - const ParamGenerator<T7>& g7,
|
| - const typename ParamGenerator<T7>::iterator& current7,
|
| - const ParamGenerator<T8>& g8,
|
| - const typename ParamGenerator<T8>::iterator& current8,
|
| - const ParamGenerator<T9>& g9,
|
| - const typename ParamGenerator<T9>::iterator& current9)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
|
| - begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
|
| - begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
|
| - begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
|
| - begin9_(g9.begin()), end9_(g9.end()), current9_(current9) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current9_;
|
| - if (current9_ == end9_) {
|
| - current9_ = begin9_;
|
| - ++current8_;
|
| - }
|
| - if (current8_ == end8_) {
|
| - current8_ = begin8_;
|
| - ++current7_;
|
| - }
|
| - if (current7_ == end7_) {
|
| - current7_ = begin7_;
|
| - ++current6_;
|
| - }
|
| - if (current6_ == end6_) {
|
| - current6_ = begin6_;
|
| - ++current5_;
|
| - }
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_ &&
|
| - current6_ == typed_other->current6_ &&
|
| - current7_ == typed_other->current7_ &&
|
| - current8_ == typed_other->current8_ &&
|
| - current9_ == typed_other->current9_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_),
|
| - begin6_(other.begin6_),
|
| - end6_(other.end6_),
|
| - current6_(other.current6_),
|
| - begin7_(other.begin7_),
|
| - end7_(other.end7_),
|
| - current7_(other.current7_),
|
| - begin8_(other.begin8_),
|
| - end8_(other.end8_),
|
| - current8_(other.current8_),
|
| - begin9_(other.begin9_),
|
| - end9_(other.end9_),
|
| - current9_(other.current9_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_, *current6_, *current7_, *current8_,
|
| - *current9_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_ ||
|
| - current6_ == end6_ ||
|
| - current7_ == end7_ ||
|
| - current8_ == end8_ ||
|
| - current9_ == end9_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - const typename ParamGenerator<T6>::iterator begin6_;
|
| - const typename ParamGenerator<T6>::iterator end6_;
|
| - typename ParamGenerator<T6>::iterator current6_;
|
| - const typename ParamGenerator<T7>::iterator begin7_;
|
| - const typename ParamGenerator<T7>::iterator end7_;
|
| - typename ParamGenerator<T7>::iterator current7_;
|
| - const typename ParamGenerator<T8>::iterator begin8_;
|
| - const typename ParamGenerator<T8>::iterator end8_;
|
| - typename ParamGenerator<T8>::iterator current8_;
|
| - const typename ParamGenerator<T9>::iterator begin9_;
|
| - const typename ParamGenerator<T9>::iterator end9_;
|
| - typename ParamGenerator<T9>::iterator current9_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator9::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator9& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| - const ParamGenerator<T6> g6_;
|
| - const ParamGenerator<T7> g7_;
|
| - const ParamGenerator<T8> g8_;
|
| - const ParamGenerator<T9> g9_;
|
| -}; // class CartesianProductGenerator9
|
| -
|
| -
|
| -template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8, typename T9, typename T10>
|
| -class CartesianProductGenerator10
|
| - : public ParamGeneratorInterface< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
|
| - T7, T8, T9, T10> > {
|
| - public:
|
| - typedef ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ParamType;
|
| -
|
| - CartesianProductGenerator10(const ParamGenerator<T1>& g1,
|
| - const ParamGenerator<T2>& g2, const ParamGenerator<T3>& g3,
|
| - const ParamGenerator<T4>& g4, const ParamGenerator<T5>& g5,
|
| - const ParamGenerator<T6>& g6, const ParamGenerator<T7>& g7,
|
| - const ParamGenerator<T8>& g8, const ParamGenerator<T9>& g9,
|
| - const ParamGenerator<T10>& g10)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
|
| - g9_(g9), g10_(g10) {}
|
| - virtual ~CartesianProductGenerator10() {}
|
| -
|
| - virtual ParamIteratorInterface<ParamType>* Begin() const {
|
| - return new Iterator(this, g1_, g1_.begin(), g2_, g2_.begin(), g3_,
|
| - g3_.begin(), g4_, g4_.begin(), g5_, g5_.begin(), g6_, g6_.begin(), g7_,
|
| - g7_.begin(), g8_, g8_.begin(), g9_, g9_.begin(), g10_, g10_.begin());
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* End() const {
|
| - return new Iterator(this, g1_, g1_.end(), g2_, g2_.end(), g3_, g3_.end(),
|
| - g4_, g4_.end(), g5_, g5_.end(), g6_, g6_.end(), g7_, g7_.end(), g8_,
|
| - g8_.end(), g9_, g9_.end(), g10_, g10_.end());
|
| - }
|
| -
|
| - private:
|
| - class Iterator : public ParamIteratorInterface<ParamType> {
|
| - public:
|
| - Iterator(const ParamGeneratorInterface<ParamType>* base,
|
| - const ParamGenerator<T1>& g1,
|
| - const typename ParamGenerator<T1>::iterator& current1,
|
| - const ParamGenerator<T2>& g2,
|
| - const typename ParamGenerator<T2>::iterator& current2,
|
| - const ParamGenerator<T3>& g3,
|
| - const typename ParamGenerator<T3>::iterator& current3,
|
| - const ParamGenerator<T4>& g4,
|
| - const typename ParamGenerator<T4>::iterator& current4,
|
| - const ParamGenerator<T5>& g5,
|
| - const typename ParamGenerator<T5>::iterator& current5,
|
| - const ParamGenerator<T6>& g6,
|
| - const typename ParamGenerator<T6>::iterator& current6,
|
| - const ParamGenerator<T7>& g7,
|
| - const typename ParamGenerator<T7>::iterator& current7,
|
| - const ParamGenerator<T8>& g8,
|
| - const typename ParamGenerator<T8>::iterator& current8,
|
| - const ParamGenerator<T9>& g9,
|
| - const typename ParamGenerator<T9>::iterator& current9,
|
| - const ParamGenerator<T10>& g10,
|
| - const typename ParamGenerator<T10>::iterator& current10)
|
| - : base_(base),
|
| - begin1_(g1.begin()), end1_(g1.end()), current1_(current1),
|
| - begin2_(g2.begin()), end2_(g2.end()), current2_(current2),
|
| - begin3_(g3.begin()), end3_(g3.end()), current3_(current3),
|
| - begin4_(g4.begin()), end4_(g4.end()), current4_(current4),
|
| - begin5_(g5.begin()), end5_(g5.end()), current5_(current5),
|
| - begin6_(g6.begin()), end6_(g6.end()), current6_(current6),
|
| - begin7_(g7.begin()), end7_(g7.end()), current7_(current7),
|
| - begin8_(g8.begin()), end8_(g8.end()), current8_(current8),
|
| - begin9_(g9.begin()), end9_(g9.end()), current9_(current9),
|
| - begin10_(g10.begin()), end10_(g10.end()), current10_(current10) {
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ~Iterator() {}
|
| -
|
| - virtual const ParamGeneratorInterface<ParamType>* BaseGenerator() const {
|
| - return base_;
|
| - }
|
| - // Advance should not be called on beyond-of-range iterators
|
| - // so no component iterators must be beyond end of range, either.
|
| - virtual void Advance() {
|
| - assert(!AtEnd());
|
| - ++current10_;
|
| - if (current10_ == end10_) {
|
| - current10_ = begin10_;
|
| - ++current9_;
|
| - }
|
| - if (current9_ == end9_) {
|
| - current9_ = begin9_;
|
| - ++current8_;
|
| - }
|
| - if (current8_ == end8_) {
|
| - current8_ = begin8_;
|
| - ++current7_;
|
| - }
|
| - if (current7_ == end7_) {
|
| - current7_ = begin7_;
|
| - ++current6_;
|
| - }
|
| - if (current6_ == end6_) {
|
| - current6_ = begin6_;
|
| - ++current5_;
|
| - }
|
| - if (current5_ == end5_) {
|
| - current5_ = begin5_;
|
| - ++current4_;
|
| - }
|
| - if (current4_ == end4_) {
|
| - current4_ = begin4_;
|
| - ++current3_;
|
| - }
|
| - if (current3_ == end3_) {
|
| - current3_ = begin3_;
|
| - ++current2_;
|
| - }
|
| - if (current2_ == end2_) {
|
| - current2_ = begin2_;
|
| - ++current1_;
|
| - }
|
| - ComputeCurrentValue();
|
| - }
|
| - virtual ParamIteratorInterface<ParamType>* Clone() const {
|
| - return new Iterator(*this);
|
| - }
|
| - virtual const ParamType* Current() const { return ¤t_value_; }
|
| - virtual bool Equals(const ParamIteratorInterface<ParamType>& other) const {
|
| - // Having the same base generator guarantees that the other
|
| - // iterator is of the same type and we can downcast.
|
| - GTEST_CHECK_(BaseGenerator() == other.BaseGenerator())
|
| - << "The program attempted to compare iterators "
|
| - << "from different generators." << std::endl;
|
| - const Iterator* typed_other =
|
| - CheckedDowncastToActualType<const Iterator>(&other);
|
| - // We must report iterators equal if they both point beyond their
|
| - // respective ranges. That can happen in a variety of fashions,
|
| - // so we have to consult AtEnd().
|
| - return (AtEnd() && typed_other->AtEnd()) ||
|
| - (
|
| - current1_ == typed_other->current1_ &&
|
| - current2_ == typed_other->current2_ &&
|
| - current3_ == typed_other->current3_ &&
|
| - current4_ == typed_other->current4_ &&
|
| - current5_ == typed_other->current5_ &&
|
| - current6_ == typed_other->current6_ &&
|
| - current7_ == typed_other->current7_ &&
|
| - current8_ == typed_other->current8_ &&
|
| - current9_ == typed_other->current9_ &&
|
| - current10_ == typed_other->current10_);
|
| - }
|
| -
|
| - private:
|
| - Iterator(const Iterator& other)
|
| - : base_(other.base_),
|
| - begin1_(other.begin1_),
|
| - end1_(other.end1_),
|
| - current1_(other.current1_),
|
| - begin2_(other.begin2_),
|
| - end2_(other.end2_),
|
| - current2_(other.current2_),
|
| - begin3_(other.begin3_),
|
| - end3_(other.end3_),
|
| - current3_(other.current3_),
|
| - begin4_(other.begin4_),
|
| - end4_(other.end4_),
|
| - current4_(other.current4_),
|
| - begin5_(other.begin5_),
|
| - end5_(other.end5_),
|
| - current5_(other.current5_),
|
| - begin6_(other.begin6_),
|
| - end6_(other.end6_),
|
| - current6_(other.current6_),
|
| - begin7_(other.begin7_),
|
| - end7_(other.end7_),
|
| - current7_(other.current7_),
|
| - begin8_(other.begin8_),
|
| - end8_(other.end8_),
|
| - current8_(other.current8_),
|
| - begin9_(other.begin9_),
|
| - end9_(other.end9_),
|
| - current9_(other.current9_),
|
| - begin10_(other.begin10_),
|
| - end10_(other.end10_),
|
| - current10_(other.current10_) {
|
| - ComputeCurrentValue();
|
| - }
|
| -
|
| - void ComputeCurrentValue() {
|
| - if (!AtEnd())
|
| - current_value_ = ParamType(*current1_, *current2_, *current3_,
|
| - *current4_, *current5_, *current6_, *current7_, *current8_,
|
| - *current9_, *current10_);
|
| - }
|
| - bool AtEnd() const {
|
| - // We must report iterator past the end of the range when either of the
|
| - // component iterators has reached the end of its range.
|
| - return
|
| - current1_ == end1_ ||
|
| - current2_ == end2_ ||
|
| - current3_ == end3_ ||
|
| - current4_ == end4_ ||
|
| - current5_ == end5_ ||
|
| - current6_ == end6_ ||
|
| - current7_ == end7_ ||
|
| - current8_ == end8_ ||
|
| - current9_ == end9_ ||
|
| - current10_ == end10_;
|
| - }
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const Iterator& other);
|
| -
|
| - const ParamGeneratorInterface<ParamType>* const base_;
|
| - // begin[i]_ and end[i]_ define the i-th range that Iterator traverses.
|
| - // current[i]_ is the actual traversing iterator.
|
| - const typename ParamGenerator<T1>::iterator begin1_;
|
| - const typename ParamGenerator<T1>::iterator end1_;
|
| - typename ParamGenerator<T1>::iterator current1_;
|
| - const typename ParamGenerator<T2>::iterator begin2_;
|
| - const typename ParamGenerator<T2>::iterator end2_;
|
| - typename ParamGenerator<T2>::iterator current2_;
|
| - const typename ParamGenerator<T3>::iterator begin3_;
|
| - const typename ParamGenerator<T3>::iterator end3_;
|
| - typename ParamGenerator<T3>::iterator current3_;
|
| - const typename ParamGenerator<T4>::iterator begin4_;
|
| - const typename ParamGenerator<T4>::iterator end4_;
|
| - typename ParamGenerator<T4>::iterator current4_;
|
| - const typename ParamGenerator<T5>::iterator begin5_;
|
| - const typename ParamGenerator<T5>::iterator end5_;
|
| - typename ParamGenerator<T5>::iterator current5_;
|
| - const typename ParamGenerator<T6>::iterator begin6_;
|
| - const typename ParamGenerator<T6>::iterator end6_;
|
| - typename ParamGenerator<T6>::iterator current6_;
|
| - const typename ParamGenerator<T7>::iterator begin7_;
|
| - const typename ParamGenerator<T7>::iterator end7_;
|
| - typename ParamGenerator<T7>::iterator current7_;
|
| - const typename ParamGenerator<T8>::iterator begin8_;
|
| - const typename ParamGenerator<T8>::iterator end8_;
|
| - typename ParamGenerator<T8>::iterator current8_;
|
| - const typename ParamGenerator<T9>::iterator begin9_;
|
| - const typename ParamGenerator<T9>::iterator end9_;
|
| - typename ParamGenerator<T9>::iterator current9_;
|
| - const typename ParamGenerator<T10>::iterator begin10_;
|
| - const typename ParamGenerator<T10>::iterator end10_;
|
| - typename ParamGenerator<T10>::iterator current10_;
|
| - ParamType current_value_;
|
| - }; // class CartesianProductGenerator10::Iterator
|
| -
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductGenerator10& other);
|
| -
|
| - const ParamGenerator<T1> g1_;
|
| - const ParamGenerator<T2> g2_;
|
| - const ParamGenerator<T3> g3_;
|
| - const ParamGenerator<T4> g4_;
|
| - const ParamGenerator<T5> g5_;
|
| - const ParamGenerator<T6> g6_;
|
| - const ParamGenerator<T7> g7_;
|
| - const ParamGenerator<T8> g8_;
|
| - const ParamGenerator<T9> g9_;
|
| - const ParamGenerator<T10> g10_;
|
| -}; // class CartesianProductGenerator10
|
| -
|
| -
|
| -// INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.
|
| -//
|
| -// Helper classes providing Combine() with polymorphic features. They allow
|
| -// casting CartesianProductGeneratorN<T> to ParamGenerator<U> if T is
|
| -// convertible to U.
|
| -//
|
| -template <class Generator1, class Generator2>
|
| -class CartesianProductHolder2 {
|
| - public:
|
| -CartesianProductHolder2(const Generator1& g1, const Generator2& g2)
|
| - : g1_(g1), g2_(g2) {}
|
| - template <typename T1, typename T2>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2> >(
|
| - new CartesianProductGenerator2<T1, T2>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder2& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| -}; // class CartesianProductHolder2
|
| -
|
| -template <class Generator1, class Generator2, class Generator3>
|
| -class CartesianProductHolder3 {
|
| - public:
|
| -CartesianProductHolder3(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3)
|
| - : g1_(g1), g2_(g2), g3_(g3) {}
|
| - template <typename T1, typename T2, typename T3>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3> >(
|
| - new CartesianProductGenerator3<T1, T2, T3>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder3& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| -}; // class CartesianProductHolder3
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4>
|
| -class CartesianProductHolder4 {
|
| - public:
|
| -CartesianProductHolder4(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4) {}
|
| - template <typename T1, typename T2, typename T3, typename T4>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4> >(
|
| - new CartesianProductGenerator4<T1, T2, T3, T4>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder4& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| -}; // class CartesianProductHolder4
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5>
|
| -class CartesianProductHolder5 {
|
| - public:
|
| -CartesianProductHolder5(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5> >(
|
| - new CartesianProductGenerator5<T1, T2, T3, T4, T5>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder5& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| -}; // class CartesianProductHolder5
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5, class Generator6>
|
| -class CartesianProductHolder6 {
|
| - public:
|
| -CartesianProductHolder6(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5,
|
| - const Generator6& g6)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6> >(
|
| - new CartesianProductGenerator6<T1, T2, T3, T4, T5, T6>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_),
|
| - static_cast<ParamGenerator<T6> >(g6_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder6& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| - const Generator6 g6_;
|
| -}; // class CartesianProductHolder6
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5, class Generator6, class Generator7>
|
| -class CartesianProductHolder7 {
|
| - public:
|
| -CartesianProductHolder7(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5,
|
| - const Generator6& g6, const Generator7& g7)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6,
|
| - T7> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7> >(
|
| - new CartesianProductGenerator7<T1, T2, T3, T4, T5, T6, T7>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_),
|
| - static_cast<ParamGenerator<T6> >(g6_),
|
| - static_cast<ParamGenerator<T7> >(g7_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder7& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| - const Generator6 g6_;
|
| - const Generator7 g7_;
|
| -}; // class CartesianProductHolder7
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5, class Generator6, class Generator7,
|
| - class Generator8>
|
| -class CartesianProductHolder8 {
|
| - public:
|
| -CartesianProductHolder8(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5,
|
| - const Generator6& g6, const Generator7& g7, const Generator8& g8)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7),
|
| - g8_(g8) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7,
|
| - T8> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8> >(
|
| - new CartesianProductGenerator8<T1, T2, T3, T4, T5, T6, T7, T8>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_),
|
| - static_cast<ParamGenerator<T6> >(g6_),
|
| - static_cast<ParamGenerator<T7> >(g7_),
|
| - static_cast<ParamGenerator<T8> >(g8_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder8& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| - const Generator6 g6_;
|
| - const Generator7 g7_;
|
| - const Generator8 g8_;
|
| -}; // class CartesianProductHolder8
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5, class Generator6, class Generator7,
|
| - class Generator8, class Generator9>
|
| -class CartesianProductHolder9 {
|
| - public:
|
| -CartesianProductHolder9(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5,
|
| - const Generator6& g6, const Generator7& g7, const Generator8& g8,
|
| - const Generator9& g9)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
|
| - g9_(g9) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8, typename T9>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
|
| - T9> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
|
| - T9> >(
|
| - new CartesianProductGenerator9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_),
|
| - static_cast<ParamGenerator<T6> >(g6_),
|
| - static_cast<ParamGenerator<T7> >(g7_),
|
| - static_cast<ParamGenerator<T8> >(g8_),
|
| - static_cast<ParamGenerator<T9> >(g9_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder9& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| - const Generator6 g6_;
|
| - const Generator7 g7_;
|
| - const Generator8 g8_;
|
| - const Generator9 g9_;
|
| -}; // class CartesianProductHolder9
|
| -
|
| -template <class Generator1, class Generator2, class Generator3,
|
| - class Generator4, class Generator5, class Generator6, class Generator7,
|
| - class Generator8, class Generator9, class Generator10>
|
| -class CartesianProductHolder10 {
|
| - public:
|
| -CartesianProductHolder10(const Generator1& g1, const Generator2& g2,
|
| - const Generator3& g3, const Generator4& g4, const Generator5& g5,
|
| - const Generator6& g6, const Generator7& g7, const Generator8& g8,
|
| - const Generator9& g9, const Generator10& g10)
|
| - : g1_(g1), g2_(g2), g3_(g3), g4_(g4), g5_(g5), g6_(g6), g7_(g7), g8_(g8),
|
| - g9_(g9), g10_(g10) {}
|
| - template <typename T1, typename T2, typename T3, typename T4, typename T5,
|
| - typename T6, typename T7, typename T8, typename T9, typename T10>
|
| - operator ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
|
| - T9, T10> >() const {
|
| - return ParamGenerator< ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8,
|
| - T9, T10> >(
|
| - new CartesianProductGenerator10<T1, T2, T3, T4, T5, T6, T7, T8, T9,
|
| - T10>(
|
| - static_cast<ParamGenerator<T1> >(g1_),
|
| - static_cast<ParamGenerator<T2> >(g2_),
|
| - static_cast<ParamGenerator<T3> >(g3_),
|
| - static_cast<ParamGenerator<T4> >(g4_),
|
| - static_cast<ParamGenerator<T5> >(g5_),
|
| - static_cast<ParamGenerator<T6> >(g6_),
|
| - static_cast<ParamGenerator<T7> >(g7_),
|
| - static_cast<ParamGenerator<T8> >(g8_),
|
| - static_cast<ParamGenerator<T9> >(g9_),
|
| - static_cast<ParamGenerator<T10> >(g10_)));
|
| - }
|
| -
|
| - private:
|
| - // No implementation - assignment is unsupported.
|
| - void operator=(const CartesianProductHolder10& other);
|
| -
|
| - const Generator1 g1_;
|
| - const Generator2 g2_;
|
| - const Generator3 g3_;
|
| - const Generator4 g4_;
|
| - const Generator5 g5_;
|
| - const Generator6 g6_;
|
| - const Generator7 g7_;
|
| - const Generator8 g8_;
|
| - const Generator9 g9_;
|
| - const Generator10 g10_;
|
| -}; // class CartesianProductHolder10
|
| -
|
| -#endif // GTEST_HAS_COMBINE
|
| -
|
| -} // namespace internal
|
| -} // namespace testing
|
| -
|
| -#endif // GTEST_HAS_PARAM_TEST
|
| -
|
| -#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
|
|
|