PageRenderTime 155ms CodeModel.GetById 24ms app.highlight 118ms RepoModel.GetById 1ms app.codeStats 2ms

/testlibs/gtest/include/gtest/internal/gtest-param-util-generated.h

https://github.com/deltaforge/nebu-app-hadoop
C Header | 4822 lines | 4238 code | 349 blank | 235 comment | 226 complexity | fcdfbe23672329116bf089d0e7d00949 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1// This file was GENERATED by command:
   2//     pump.py gtest-param-util-generated.h.pump
   3// DO NOT EDIT BY HAND!!!
   4
   5// Copyright 2008 Google Inc.
   6// All Rights Reserved.
   7//
   8// Redistribution and use in source and binary forms, with or without
   9// modification, are permitted provided that the following conditions are
  10// met:
  11//
  12//     * Redistributions of source code must retain the above copyright
  13// notice, this list of conditions and the following disclaimer.
  14//     * Redistributions in binary form must reproduce the above
  15// copyright notice, this list of conditions and the following disclaimer
  16// in the documentation and/or other materials provided with the
  17// distribution.
  18//     * Neither the name of Google Inc. nor the names of its
  19// contributors may be used to endorse or promote products derived from
  20// this software without specific prior written permission.
  21//
  22// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  23// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  24// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  25// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  26// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  27// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  28// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  29// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  30// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  31// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  32// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  33//
  34// Author: vladl@google.com (Vlad Losev)
  35
  36// Type and function utilities for implementing parameterized tests.
  37// This file is generated by a SCRIPT.  DO NOT EDIT BY HAND!
  38//
  39// Currently Google Test supports at most 50 arguments in Values,
  40// and at most 10 arguments in Combine. Please contact
  41// googletestframework@googlegroups.com if you need more.
  42// Please note that the number of arguments to Combine is limited
  43// by the maximum arity of the implementation of tr1::tuple which is
  44// currently set at 10.
  45
  46#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
  47#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_GENERATED_H_
  48
  49// scripts/fuse_gtest.py depends on gtest's own header being #included
  50// *unconditionally*.  Therefore these #includes cannot be moved
  51// inside #if GTEST_HAS_PARAM_TEST.
  52#include "gtest/internal/gtest-param-util.h"
  53#include "gtest/internal/gtest-port.h"
  54
  55#if GTEST_HAS_PARAM_TEST
  56
  57namespace testing {
  58
  59// Forward declarations of ValuesIn(), which is implemented in
  60// include/gtest/gtest-param-test.h.
  61template <typename ForwardIterator>
  62internal::ParamGenerator<
  63  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type>
  64ValuesIn(ForwardIterator begin, ForwardIterator end);
  65
  66template <typename T, size_t N>
  67internal::ParamGenerator<T> ValuesIn(const T (&array)[N]);
  68
  69template <class Container>
  70internal::ParamGenerator<typename Container::value_type> ValuesIn(
  71    const Container& container);
  72
  73namespace internal {
  74
  75// Used in the Values() function to provide polymorphic capabilities.
  76template <typename T1>
  77class ValueArray1 {
  78 public:
  79  explicit ValueArray1(T1 v1) : v1_(v1) {}
  80
  81  template <typename T>
  82  operator ParamGenerator<T>() const { return ValuesIn(&v1_, &v1_ + 1); }
  83
  84 private:
  85  // No implementation - assignment is unsupported.
  86  void operator=(const ValueArray1& other);
  87
  88  const T1 v1_;
  89};
  90
  91template <typename T1, typename T2>
  92class ValueArray2 {
  93 public:
  94  ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {}
  95
  96  template <typename T>
  97  operator ParamGenerator<T>() const {
  98    const T array[] = {v1_, v2_};
  99    return ValuesIn(array);
 100  }
 101
 102 private:
 103  // No implementation - assignment is unsupported.
 104  void operator=(const ValueArray2& other);
 105
 106  const T1 v1_;
 107  const T2 v2_;
 108};
 109
 110template <typename T1, typename T2, typename T3>
 111class ValueArray3 {
 112 public:
 113  ValueArray3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {}
 114
 115  template <typename T>
 116  operator ParamGenerator<T>() const {
 117    const T array[] = {v1_, v2_, v3_};
 118    return ValuesIn(array);
 119  }
 120
 121 private:
 122  // No implementation - assignment is unsupported.
 123  void operator=(const ValueArray3& other);
 124
 125  const T1 v1_;
 126  const T2 v2_;
 127  const T3 v3_;
 128};
 129
 130template <typename T1, typename T2, typename T3, typename T4>
 131class ValueArray4 {
 132 public:
 133  ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3),
 134      v4_(v4) {}
 135
 136  template <typename T>
 137  operator ParamGenerator<T>() const {
 138    const T array[] = {v1_, v2_, v3_, v4_};
 139    return ValuesIn(array);
 140  }
 141
 142 private:
 143  // No implementation - assignment is unsupported.
 144  void operator=(const ValueArray4& other);
 145
 146  const T1 v1_;
 147  const T2 v2_;
 148  const T3 v3_;
 149  const T4 v4_;
 150};
 151
 152template <typename T1, typename T2, typename T3, typename T4, typename T5>
 153class ValueArray5 {
 154 public:
 155  ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3),
 156      v4_(v4), v5_(v5) {}
 157
 158  template <typename T>
 159  operator ParamGenerator<T>() const {
 160    const T array[] = {v1_, v2_, v3_, v4_, v5_};
 161    return ValuesIn(array);
 162  }
 163
 164 private:
 165  // No implementation - assignment is unsupported.
 166  void operator=(const ValueArray5& other);
 167
 168  const T1 v1_;
 169  const T2 v2_;
 170  const T3 v3_;
 171  const T4 v4_;
 172  const T5 v5_;
 173};
 174
 175template <typename T1, typename T2, typename T3, typename T4, typename T5,
 176    typename T6>
 177class ValueArray6 {
 178 public:
 179  ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6) : v1_(v1), v2_(v2),
 180      v3_(v3), v4_(v4), v5_(v5), v6_(v6) {}
 181
 182  template <typename T>
 183  operator ParamGenerator<T>() const {
 184    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_};
 185    return ValuesIn(array);
 186  }
 187
 188 private:
 189  // No implementation - assignment is unsupported.
 190  void operator=(const ValueArray6& other);
 191
 192  const T1 v1_;
 193  const T2 v2_;
 194  const T3 v3_;
 195  const T4 v4_;
 196  const T5 v5_;
 197  const T6 v6_;
 198};
 199
 200template <typename T1, typename T2, typename T3, typename T4, typename T5,
 201    typename T6, typename T7>
 202class ValueArray7 {
 203 public:
 204  ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7) : v1_(v1),
 205      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {}
 206
 207  template <typename T>
 208  operator ParamGenerator<T>() const {
 209    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_};
 210    return ValuesIn(array);
 211  }
 212
 213 private:
 214  // No implementation - assignment is unsupported.
 215  void operator=(const ValueArray7& other);
 216
 217  const T1 v1_;
 218  const T2 v2_;
 219  const T3 v3_;
 220  const T4 v4_;
 221  const T5 v5_;
 222  const T6 v6_;
 223  const T7 v7_;
 224};
 225
 226template <typename T1, typename T2, typename T3, typename T4, typename T5,
 227    typename T6, typename T7, typename T8>
 228class ValueArray8 {
 229 public:
 230  ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7,
 231      T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 232      v8_(v8) {}
 233
 234  template <typename T>
 235  operator ParamGenerator<T>() const {
 236    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_};
 237    return ValuesIn(array);
 238  }
 239
 240 private:
 241  // No implementation - assignment is unsupported.
 242  void operator=(const ValueArray8& other);
 243
 244  const T1 v1_;
 245  const T2 v2_;
 246  const T3 v3_;
 247  const T4 v4_;
 248  const T5 v5_;
 249  const T6 v6_;
 250  const T7 v7_;
 251  const T8 v8_;
 252};
 253
 254template <typename T1, typename T2, typename T3, typename T4, typename T5,
 255    typename T6, typename T7, typename T8, typename T9>
 256class ValueArray9 {
 257 public:
 258  ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8,
 259      T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 260      v8_(v8), v9_(v9) {}
 261
 262  template <typename T>
 263  operator ParamGenerator<T>() const {
 264    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_};
 265    return ValuesIn(array);
 266  }
 267
 268 private:
 269  // No implementation - assignment is unsupported.
 270  void operator=(const ValueArray9& other);
 271
 272  const T1 v1_;
 273  const T2 v2_;
 274  const T3 v3_;
 275  const T4 v4_;
 276  const T5 v5_;
 277  const T6 v6_;
 278  const T7 v7_;
 279  const T8 v8_;
 280  const T9 v9_;
 281};
 282
 283template <typename T1, typename T2, typename T3, typename T4, typename T5,
 284    typename T6, typename T7, typename T8, typename T9, typename T10>
 285class ValueArray10 {
 286 public:
 287  ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 288      T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 289      v8_(v8), v9_(v9), v10_(v10) {}
 290
 291  template <typename T>
 292  operator ParamGenerator<T>() const {
 293    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_};
 294    return ValuesIn(array);
 295  }
 296
 297 private:
 298  // No implementation - assignment is unsupported.
 299  void operator=(const ValueArray10& other);
 300
 301  const T1 v1_;
 302  const T2 v2_;
 303  const T3 v3_;
 304  const T4 v4_;
 305  const T5 v5_;
 306  const T6 v6_;
 307  const T7 v7_;
 308  const T8 v8_;
 309  const T9 v9_;
 310  const T10 v10_;
 311};
 312
 313template <typename T1, typename T2, typename T3, typename T4, typename T5,
 314    typename T6, typename T7, typename T8, typename T9, typename T10,
 315    typename T11>
 316class ValueArray11 {
 317 public:
 318  ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 319      T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
 320      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {}
 321
 322  template <typename T>
 323  operator ParamGenerator<T>() const {
 324    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_};
 325    return ValuesIn(array);
 326  }
 327
 328 private:
 329  // No implementation - assignment is unsupported.
 330  void operator=(const ValueArray11& other);
 331
 332  const T1 v1_;
 333  const T2 v2_;
 334  const T3 v3_;
 335  const T4 v4_;
 336  const T5 v5_;
 337  const T6 v6_;
 338  const T7 v7_;
 339  const T8 v8_;
 340  const T9 v9_;
 341  const T10 v10_;
 342  const T11 v11_;
 343};
 344
 345template <typename T1, typename T2, typename T3, typename T4, typename T5,
 346    typename T6, typename T7, typename T8, typename T9, typename T10,
 347    typename T11, typename T12>
 348class ValueArray12 {
 349 public:
 350  ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 351      T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
 352      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {}
 353
 354  template <typename T>
 355  operator ParamGenerator<T>() const {
 356    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 357        v12_};
 358    return ValuesIn(array);
 359  }
 360
 361 private:
 362  // No implementation - assignment is unsupported.
 363  void operator=(const ValueArray12& other);
 364
 365  const T1 v1_;
 366  const T2 v2_;
 367  const T3 v3_;
 368  const T4 v4_;
 369  const T5 v5_;
 370  const T6 v6_;
 371  const T7 v7_;
 372  const T8 v8_;
 373  const T9 v9_;
 374  const T10 v10_;
 375  const T11 v11_;
 376  const T12 v12_;
 377};
 378
 379template <typename T1, typename T2, typename T3, typename T4, typename T5,
 380    typename T6, typename T7, typename T8, typename T9, typename T10,
 381    typename T11, typename T12, typename T13>
 382class ValueArray13 {
 383 public:
 384  ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 385      T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
 386      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
 387      v12_(v12), v13_(v13) {}
 388
 389  template <typename T>
 390  operator ParamGenerator<T>() const {
 391    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 392        v12_, v13_};
 393    return ValuesIn(array);
 394  }
 395
 396 private:
 397  // No implementation - assignment is unsupported.
 398  void operator=(const ValueArray13& other);
 399
 400  const T1 v1_;
 401  const T2 v2_;
 402  const T3 v3_;
 403  const T4 v4_;
 404  const T5 v5_;
 405  const T6 v6_;
 406  const T7 v7_;
 407  const T8 v8_;
 408  const T9 v9_;
 409  const T10 v10_;
 410  const T11 v11_;
 411  const T12 v12_;
 412  const T13 v13_;
 413};
 414
 415template <typename T1, typename T2, typename T3, typename T4, typename T5,
 416    typename T6, typename T7, typename T8, typename T9, typename T10,
 417    typename T11, typename T12, typename T13, typename T14>
 418class ValueArray14 {
 419 public:
 420  ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 421      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3),
 422      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
 423      v11_(v11), v12_(v12), v13_(v13), v14_(v14) {}
 424
 425  template <typename T>
 426  operator ParamGenerator<T>() const {
 427    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 428        v12_, v13_, v14_};
 429    return ValuesIn(array);
 430  }
 431
 432 private:
 433  // No implementation - assignment is unsupported.
 434  void operator=(const ValueArray14& other);
 435
 436  const T1 v1_;
 437  const T2 v2_;
 438  const T3 v3_;
 439  const T4 v4_;
 440  const T5 v5_;
 441  const T6 v6_;
 442  const T7 v7_;
 443  const T8 v8_;
 444  const T9 v9_;
 445  const T10 v10_;
 446  const T11 v11_;
 447  const T12 v12_;
 448  const T13 v13_;
 449  const T14 v14_;
 450};
 451
 452template <typename T1, typename T2, typename T3, typename T4, typename T5,
 453    typename T6, typename T7, typename T8, typename T9, typename T10,
 454    typename T11, typename T12, typename T13, typename T14, typename T15>
 455class ValueArray15 {
 456 public:
 457  ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 458      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2),
 459      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
 460      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {}
 461
 462  template <typename T>
 463  operator ParamGenerator<T>() const {
 464    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 465        v12_, v13_, v14_, v15_};
 466    return ValuesIn(array);
 467  }
 468
 469 private:
 470  // No implementation - assignment is unsupported.
 471  void operator=(const ValueArray15& other);
 472
 473  const T1 v1_;
 474  const T2 v2_;
 475  const T3 v3_;
 476  const T4 v4_;
 477  const T5 v5_;
 478  const T6 v6_;
 479  const T7 v7_;
 480  const T8 v8_;
 481  const T9 v9_;
 482  const T10 v10_;
 483  const T11 v11_;
 484  const T12 v12_;
 485  const T13 v13_;
 486  const T14 v14_;
 487  const T15 v15_;
 488};
 489
 490template <typename T1, typename T2, typename T3, typename T4, typename T5,
 491    typename T6, typename T7, typename T8, typename T9, typename T10,
 492    typename T11, typename T12, typename T13, typename T14, typename T15,
 493    typename T16>
 494class ValueArray16 {
 495 public:
 496  ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 497      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1),
 498      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
 499      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
 500      v16_(v16) {}
 501
 502  template <typename T>
 503  operator ParamGenerator<T>() const {
 504    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 505        v12_, v13_, v14_, v15_, v16_};
 506    return ValuesIn(array);
 507  }
 508
 509 private:
 510  // No implementation - assignment is unsupported.
 511  void operator=(const ValueArray16& other);
 512
 513  const T1 v1_;
 514  const T2 v2_;
 515  const T3 v3_;
 516  const T4 v4_;
 517  const T5 v5_;
 518  const T6 v6_;
 519  const T7 v7_;
 520  const T8 v8_;
 521  const T9 v9_;
 522  const T10 v10_;
 523  const T11 v11_;
 524  const T12 v12_;
 525  const T13 v13_;
 526  const T14 v14_;
 527  const T15 v15_;
 528  const T16 v16_;
 529};
 530
 531template <typename T1, typename T2, typename T3, typename T4, typename T5,
 532    typename T6, typename T7, typename T8, typename T9, typename T10,
 533    typename T11, typename T12, typename T13, typename T14, typename T15,
 534    typename T16, typename T17>
 535class ValueArray17 {
 536 public:
 537  ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 538      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16,
 539      T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 540      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
 541      v15_(v15), v16_(v16), v17_(v17) {}
 542
 543  template <typename T>
 544  operator ParamGenerator<T>() const {
 545    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 546        v12_, v13_, v14_, v15_, v16_, v17_};
 547    return ValuesIn(array);
 548  }
 549
 550 private:
 551  // No implementation - assignment is unsupported.
 552  void operator=(const ValueArray17& other);
 553
 554  const T1 v1_;
 555  const T2 v2_;
 556  const T3 v3_;
 557  const T4 v4_;
 558  const T5 v5_;
 559  const T6 v6_;
 560  const T7 v7_;
 561  const T8 v8_;
 562  const T9 v9_;
 563  const T10 v10_;
 564  const T11 v11_;
 565  const T12 v12_;
 566  const T13 v13_;
 567  const T14 v14_;
 568  const T15 v15_;
 569  const T16 v16_;
 570  const T17 v17_;
 571};
 572
 573template <typename T1, typename T2, typename T3, typename T4, typename T5,
 574    typename T6, typename T7, typename T8, typename T9, typename T10,
 575    typename T11, typename T12, typename T13, typename T14, typename T15,
 576    typename T16, typename T17, typename T18>
 577class ValueArray18 {
 578 public:
 579  ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 580      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 581      T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 582      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
 583      v15_(v15), v16_(v16), v17_(v17), v18_(v18) {}
 584
 585  template <typename T>
 586  operator ParamGenerator<T>() const {
 587    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 588        v12_, v13_, v14_, v15_, v16_, v17_, v18_};
 589    return ValuesIn(array);
 590  }
 591
 592 private:
 593  // No implementation - assignment is unsupported.
 594  void operator=(const ValueArray18& other);
 595
 596  const T1 v1_;
 597  const T2 v2_;
 598  const T3 v3_;
 599  const T4 v4_;
 600  const T5 v5_;
 601  const T6 v6_;
 602  const T7 v7_;
 603  const T8 v8_;
 604  const T9 v9_;
 605  const T10 v10_;
 606  const T11 v11_;
 607  const T12 v12_;
 608  const T13 v13_;
 609  const T14 v14_;
 610  const T15 v15_;
 611  const T16 v16_;
 612  const T17 v17_;
 613  const T18 v18_;
 614};
 615
 616template <typename T1, typename T2, typename T3, typename T4, typename T5,
 617    typename T6, typename T7, typename T8, typename T9, typename T10,
 618    typename T11, typename T12, typename T13, typename T14, typename T15,
 619    typename T16, typename T17, typename T18, typename T19>
 620class ValueArray19 {
 621 public:
 622  ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 623      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 624      T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
 625      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
 626      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {}
 627
 628  template <typename T>
 629  operator ParamGenerator<T>() const {
 630    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 631        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_};
 632    return ValuesIn(array);
 633  }
 634
 635 private:
 636  // No implementation - assignment is unsupported.
 637  void operator=(const ValueArray19& other);
 638
 639  const T1 v1_;
 640  const T2 v2_;
 641  const T3 v3_;
 642  const T4 v4_;
 643  const T5 v5_;
 644  const T6 v6_;
 645  const T7 v7_;
 646  const T8 v8_;
 647  const T9 v9_;
 648  const T10 v10_;
 649  const T11 v11_;
 650  const T12 v12_;
 651  const T13 v13_;
 652  const T14 v14_;
 653  const T15 v15_;
 654  const T16 v16_;
 655  const T17 v17_;
 656  const T18 v18_;
 657  const T19 v19_;
 658};
 659
 660template <typename T1, typename T2, typename T3, typename T4, typename T5,
 661    typename T6, typename T7, typename T8, typename T9, typename T10,
 662    typename T11, typename T12, typename T13, typename T14, typename T15,
 663    typename T16, typename T17, typename T18, typename T19, typename T20>
 664class ValueArray20 {
 665 public:
 666  ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 667      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 668      T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
 669      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
 670      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
 671      v19_(v19), v20_(v20) {}
 672
 673  template <typename T>
 674  operator ParamGenerator<T>() const {
 675    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 676        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_};
 677    return ValuesIn(array);
 678  }
 679
 680 private:
 681  // No implementation - assignment is unsupported.
 682  void operator=(const ValueArray20& other);
 683
 684  const T1 v1_;
 685  const T2 v2_;
 686  const T3 v3_;
 687  const T4 v4_;
 688  const T5 v5_;
 689  const T6 v6_;
 690  const T7 v7_;
 691  const T8 v8_;
 692  const T9 v9_;
 693  const T10 v10_;
 694  const T11 v11_;
 695  const T12 v12_;
 696  const T13 v13_;
 697  const T14 v14_;
 698  const T15 v15_;
 699  const T16 v16_;
 700  const T17 v17_;
 701  const T18 v18_;
 702  const T19 v19_;
 703  const T20 v20_;
 704};
 705
 706template <typename T1, typename T2, typename T3, typename T4, typename T5,
 707    typename T6, typename T7, typename T8, typename T9, typename T10,
 708    typename T11, typename T12, typename T13, typename T14, typename T15,
 709    typename T16, typename T17, typename T18, typename T19, typename T20,
 710    typename T21>
 711class ValueArray21 {
 712 public:
 713  ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 714      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 715      T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
 716      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
 717      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
 718      v18_(v18), v19_(v19), v20_(v20), v21_(v21) {}
 719
 720  template <typename T>
 721  operator ParamGenerator<T>() const {
 722    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 723        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_};
 724    return ValuesIn(array);
 725  }
 726
 727 private:
 728  // No implementation - assignment is unsupported.
 729  void operator=(const ValueArray21& other);
 730
 731  const T1 v1_;
 732  const T2 v2_;
 733  const T3 v3_;
 734  const T4 v4_;
 735  const T5 v5_;
 736  const T6 v6_;
 737  const T7 v7_;
 738  const T8 v8_;
 739  const T9 v9_;
 740  const T10 v10_;
 741  const T11 v11_;
 742  const T12 v12_;
 743  const T13 v13_;
 744  const T14 v14_;
 745  const T15 v15_;
 746  const T16 v16_;
 747  const T17 v17_;
 748  const T18 v18_;
 749  const T19 v19_;
 750  const T20 v20_;
 751  const T21 v21_;
 752};
 753
 754template <typename T1, typename T2, typename T3, typename T4, typename T5,
 755    typename T6, typename T7, typename T8, typename T9, typename T10,
 756    typename T11, typename T12, typename T13, typename T14, typename T15,
 757    typename T16, typename T17, typename T18, typename T19, typename T20,
 758    typename T21, typename T22>
 759class ValueArray22 {
 760 public:
 761  ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 762      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 763      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3),
 764      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
 765      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
 766      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {}
 767
 768  template <typename T>
 769  operator ParamGenerator<T>() const {
 770    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 771        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_};
 772    return ValuesIn(array);
 773  }
 774
 775 private:
 776  // No implementation - assignment is unsupported.
 777  void operator=(const ValueArray22& other);
 778
 779  const T1 v1_;
 780  const T2 v2_;
 781  const T3 v3_;
 782  const T4 v4_;
 783  const T5 v5_;
 784  const T6 v6_;
 785  const T7 v7_;
 786  const T8 v8_;
 787  const T9 v9_;
 788  const T10 v10_;
 789  const T11 v11_;
 790  const T12 v12_;
 791  const T13 v13_;
 792  const T14 v14_;
 793  const T15 v15_;
 794  const T16 v16_;
 795  const T17 v17_;
 796  const T18 v18_;
 797  const T19 v19_;
 798  const T20 v20_;
 799  const T21 v21_;
 800  const T22 v22_;
 801};
 802
 803template <typename T1, typename T2, typename T3, typename T4, typename T5,
 804    typename T6, typename T7, typename T8, typename T9, typename T10,
 805    typename T11, typename T12, typename T13, typename T14, typename T15,
 806    typename T16, typename T17, typename T18, typename T19, typename T20,
 807    typename T21, typename T22, typename T23>
 808class ValueArray23 {
 809 public:
 810  ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 811      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 812      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2),
 813      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
 814      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
 815      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
 816      v23_(v23) {}
 817
 818  template <typename T>
 819  operator ParamGenerator<T>() const {
 820    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 821        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_,
 822        v23_};
 823    return ValuesIn(array);
 824  }
 825
 826 private:
 827  // No implementation - assignment is unsupported.
 828  void operator=(const ValueArray23& other);
 829
 830  const T1 v1_;
 831  const T2 v2_;
 832  const T3 v3_;
 833  const T4 v4_;
 834  const T5 v5_;
 835  const T6 v6_;
 836  const T7 v7_;
 837  const T8 v8_;
 838  const T9 v9_;
 839  const T10 v10_;
 840  const T11 v11_;
 841  const T12 v12_;
 842  const T13 v13_;
 843  const T14 v14_;
 844  const T15 v15_;
 845  const T16 v16_;
 846  const T17 v17_;
 847  const T18 v18_;
 848  const T19 v19_;
 849  const T20 v20_;
 850  const T21 v21_;
 851  const T22 v22_;
 852  const T23 v23_;
 853};
 854
 855template <typename T1, typename T2, typename T3, typename T4, typename T5,
 856    typename T6, typename T7, typename T8, typename T9, typename T10,
 857    typename T11, typename T12, typename T13, typename T14, typename T15,
 858    typename T16, typename T17, typename T18, typename T19, typename T20,
 859    typename T21, typename T22, typename T23, typename T24>
 860class ValueArray24 {
 861 public:
 862  ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 863      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 864      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1),
 865      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
 866      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
 867      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
 868      v22_(v22), v23_(v23), v24_(v24) {}
 869
 870  template <typename T>
 871  operator ParamGenerator<T>() const {
 872    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 873        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
 874        v24_};
 875    return ValuesIn(array);
 876  }
 877
 878 private:
 879  // No implementation - assignment is unsupported.
 880  void operator=(const ValueArray24& other);
 881
 882  const T1 v1_;
 883  const T2 v2_;
 884  const T3 v3_;
 885  const T4 v4_;
 886  const T5 v5_;
 887  const T6 v6_;
 888  const T7 v7_;
 889  const T8 v8_;
 890  const T9 v9_;
 891  const T10 v10_;
 892  const T11 v11_;
 893  const T12 v12_;
 894  const T13 v13_;
 895  const T14 v14_;
 896  const T15 v15_;
 897  const T16 v16_;
 898  const T17 v17_;
 899  const T18 v18_;
 900  const T19 v19_;
 901  const T20 v20_;
 902  const T21 v21_;
 903  const T22 v22_;
 904  const T23 v23_;
 905  const T24 v24_;
 906};
 907
 908template <typename T1, typename T2, typename T3, typename T4, typename T5,
 909    typename T6, typename T7, typename T8, typename T9, typename T10,
 910    typename T11, typename T12, typename T13, typename T14, typename T15,
 911    typename T16, typename T17, typename T18, typename T19, typename T20,
 912    typename T21, typename T22, typename T23, typename T24, typename T25>
 913class ValueArray25 {
 914 public:
 915  ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 916      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 917      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24,
 918      T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 919      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
 920      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
 921      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {}
 922
 923  template <typename T>
 924  operator ParamGenerator<T>() const {
 925    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 926        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
 927        v24_, v25_};
 928    return ValuesIn(array);
 929  }
 930
 931 private:
 932  // No implementation - assignment is unsupported.
 933  void operator=(const ValueArray25& other);
 934
 935  const T1 v1_;
 936  const T2 v2_;
 937  const T3 v3_;
 938  const T4 v4_;
 939  const T5 v5_;
 940  const T6 v6_;
 941  const T7 v7_;
 942  const T8 v8_;
 943  const T9 v9_;
 944  const T10 v10_;
 945  const T11 v11_;
 946  const T12 v12_;
 947  const T13 v13_;
 948  const T14 v14_;
 949  const T15 v15_;
 950  const T16 v16_;
 951  const T17 v17_;
 952  const T18 v18_;
 953  const T19 v19_;
 954  const T20 v20_;
 955  const T21 v21_;
 956  const T22 v22_;
 957  const T23 v23_;
 958  const T24 v24_;
 959  const T25 v25_;
 960};
 961
 962template <typename T1, typename T2, typename T3, typename T4, typename T5,
 963    typename T6, typename T7, typename T8, typename T9, typename T10,
 964    typename T11, typename T12, typename T13, typename T14, typename T15,
 965    typename T16, typename T17, typename T18, typename T19, typename T20,
 966    typename T21, typename T22, typename T23, typename T24, typename T25,
 967    typename T26>
 968class ValueArray26 {
 969 public:
 970  ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
 971      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
 972      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
 973      T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
 974      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
 975      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
 976      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {}
 977
 978  template <typename T>
 979  operator ParamGenerator<T>() const {
 980    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
 981        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
 982        v24_, v25_, v26_};
 983    return ValuesIn(array);
 984  }
 985
 986 private:
 987  // No implementation - assignment is unsupported.
 988  void operator=(const ValueArray26& other);
 989
 990  const T1 v1_;
 991  const T2 v2_;
 992  const T3 v3_;
 993  const T4 v4_;
 994  const T5 v5_;
 995  const T6 v6_;
 996  const T7 v7_;
 997  const T8 v8_;
 998  const T9 v9_;
 999  const T10 v10_;
1000  const T11 v11_;
1001  const T12 v12_;
1002  const T13 v13_;
1003  const T14 v14_;
1004  const T15 v15_;
1005  const T16 v16_;
1006  const T17 v17_;
1007  const T18 v18_;
1008  const T19 v19_;
1009  const T20 v20_;
1010  const T21 v21_;
1011  const T22 v22_;
1012  const T23 v23_;
1013  const T24 v24_;
1014  const T25 v25_;
1015  const T26 v26_;
1016};
1017
1018template <typename T1, typename T2, typename T3, typename T4, typename T5,
1019    typename T6, typename T7, typename T8, typename T9, typename T10,
1020    typename T11, typename T12, typename T13, typename T14, typename T15,
1021    typename T16, typename T17, typename T18, typename T19, typename T20,
1022    typename T21, typename T22, typename T23, typename T24, typename T25,
1023    typename T26, typename T27>
1024class ValueArray27 {
1025 public:
1026  ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1027      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1028      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1029      T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
1030      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
1031      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
1032      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
1033      v26_(v26), v27_(v27) {}
1034
1035  template <typename T>
1036  operator ParamGenerator<T>() const {
1037    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1038        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1039        v24_, v25_, v26_, v27_};
1040    return ValuesIn(array);
1041  }
1042
1043 private:
1044  // No implementation - assignment is unsupported.
1045  void operator=(const ValueArray27& other);
1046
1047  const T1 v1_;
1048  const T2 v2_;
1049  const T3 v3_;
1050  const T4 v4_;
1051  const T5 v5_;
1052  const T6 v6_;
1053  const T7 v7_;
1054  const T8 v8_;
1055  const T9 v9_;
1056  const T10 v10_;
1057  const T11 v11_;
1058  const T12 v12_;
1059  const T13 v13_;
1060  const T14 v14_;
1061  const T15 v15_;
1062  const T16 v16_;
1063  const T17 v17_;
1064  const T18 v18_;
1065  const T19 v19_;
1066  const T20 v20_;
1067  const T21 v21_;
1068  const T22 v22_;
1069  const T23 v23_;
1070  const T24 v24_;
1071  const T25 v25_;
1072  const T26 v26_;
1073  const T27 v27_;
1074};
1075
1076template <typename T1, typename T2, typename T3, typename T4, typename T5,
1077    typename T6, typename T7, typename T8, typename T9, typename T10,
1078    typename T11, typename T12, typename T13, typename T14, typename T15,
1079    typename T16, typename T17, typename T18, typename T19, typename T20,
1080    typename T21, typename T22, typename T23, typename T24, typename T25,
1081    typename T26, typename T27, typename T28>
1082class ValueArray28 {
1083 public:
1084  ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1085      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1086      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1087      T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5),
1088      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12),
1089      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18),
1090      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24),
1091      v25_(v25), v26_(v26), v27_(v27), v28_(v28) {}
1092
1093  template <typename T>
1094  operator ParamGenerator<T>() const {
1095    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1096        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1097        v24_, v25_, v26_, v27_, v28_};
1098    return ValuesIn(array);
1099  }
1100
1101 private:
1102  // No implementation - assignment is unsupported.
1103  void operator=(const ValueArray28& other);
1104
1105  const T1 v1_;
1106  const T2 v2_;
1107  const T3 v3_;
1108  const T4 v4_;
1109  const T5 v5_;
1110  const T6 v6_;
1111  const T7 v7_;
1112  const T8 v8_;
1113  const T9 v9_;
1114  const T10 v10_;
1115  const T11 v11_;
1116  const T12 v12_;
1117  const T13 v13_;
1118  const T14 v14_;
1119  const T15 v15_;
1120  const T16 v16_;
1121  const T17 v17_;
1122  const T18 v18_;
1123  const T19 v19_;
1124  const T20 v20_;
1125  const T21 v21_;
1126  const T22 v22_;
1127  const T23 v23_;
1128  const T24 v24_;
1129  const T25 v25_;
1130  const T26 v26_;
1131  const T27 v27_;
1132  const T28 v28_;
1133};
1134
1135template <typename T1, typename T2, typename T3, typename T4, typename T5,
1136    typename T6, typename T7, typename T8, typename T9, typename T10,
1137    typename T11, typename T12, typename T13, typename T14, typename T15,
1138    typename T16, typename T17, typename T18, typename T19, typename T20,
1139    typename T21, typename T22, typename T23, typename T24, typename T25,
1140    typename T26, typename T27, typename T28, typename T29>
1141class ValueArray29 {
1142 public:
1143  ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1144      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1145      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1146      T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4),
1147      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11),
1148      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17),
1149      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23),
1150      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {}
1151
1152  template <typename T>
1153  operator ParamGenerator<T>() const {
1154    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1155        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1156        v24_, v25_, v26_, v27_, v28_, v29_};
1157    return ValuesIn(array);
1158  }
1159
1160 private:
1161  // No implementation - assignment is unsupported.
1162  void operator=(const ValueArray29& other);
1163
1164  const T1 v1_;
1165  const T2 v2_;
1166  const T3 v3_;
1167  const T4 v4_;
1168  const T5 v5_;
1169  const T6 v6_;
1170  const T7 v7_;
1171  const T8 v8_;
1172  const T9 v9_;
1173  const T10 v10_;
1174  const T11 v11_;
1175  const T12 v12_;
1176  const T13 v13_;
1177  const T14 v14_;
1178  const T15 v15_;
1179  const T16 v16_;
1180  const T17 v17_;
1181  const T18 v18_;
1182  const T19 v19_;
1183  const T20 v20_;
1184  const T21 v21_;
1185  const T22 v22_;
1186  const T23 v23_;
1187  const T24 v24_;
1188  const T25 v25_;
1189  const T26 v26_;
1190  const T27 v27_;
1191  const T28 v28_;
1192  const T29 v29_;
1193};
1194
1195template <typename T1, typename T2, typename T3, typename T4, typename T5,
1196    typename T6, typename T7, typename T8, typename T9, typename T10,
1197    typename T11, typename T12, typename T13, typename T14, typename T15,
1198    typename T16, typename T17, typename T18, typename T19, typename T20,
1199    typename T21, typename T22, typename T23, typename T24, typename T25,
1200    typename T26, typename T27, typename T28, typename T29, typename T30>
1201class ValueArray30 {
1202 public:
1203  ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1204      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1205      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1206      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3),
1207      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
1208      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
1209      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
1210      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
1211      v29_(v29), v30_(v30) {}
1212
1213  template <typename T>
1214  operator ParamGenerator<T>() const {
1215    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1216        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1217        v24_, v25_, v26_, v27_, v28_, v29_, v30_};
1218    return ValuesIn(array);
1219  }
1220
1221 private:
1222  // No implementation - assignment is unsupported.
1223  void operator=(const ValueArray30& other);
1224
1225  const T1 v1_;
1226  const T2 v2_;
1227  const T3 v3_;
1228  const T4 v4_;
1229  const T5 v5_;
1230  const T6 v6_;
1231  const T7 v7_;
1232  const T8 v8_;
1233  const T9 v9_;
1234  const T10 v10_;
1235  const T11 v11_;
1236  const T12 v12_;
1237  const T13 v13_;
1238  const T14 v14_;
1239  const T15 v15_;
1240  const T16 v16_;
1241  const T17 v17_;
1242  const T18 v18_;
1243  const T19 v19_;
1244  const T20 v20_;
1245  const T21 v21_;
1246  const T22 v22_;
1247  const T23 v23_;
1248  const T24 v24_;
1249  const T25 v25_;
1250  const T26 v26_;
1251  const T27 v27_;
1252  const T28 v28_;
1253  const T29 v29_;
1254  const T30 v30_;
1255};
1256
1257template <typename T1, typename T2, typename T3, typename T4, typename T5,
1258    typename T6, typename T7, typename T8, typename T9, typename T10,
1259    typename T11, typename T12, typename T13, typename T14, typename T15,
1260    typename T16, typename T17, typename T18, typename T19, typename T20,
1261    typename T21, typename T22, typename T23, typename T24, typename T25,
1262    typename T26, typename T27, typename T28, typename T29, typename T30,
1263    typename T31>
1264class ValueArray31 {
1265 public:
1266  ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1267      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1268      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1269      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2),
1270      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10),
1271      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16),
1272      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22),
1273      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28),
1274      v29_(v29), v30_(v30), v31_(v31) {}
1275
1276  template <typename T>
1277  operator ParamGenerator<T>() const {
1278    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1279        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1280        v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_};
1281    return ValuesIn(array);
1282  }
1283
1284 private:
1285  // No implementation - assignment is unsupported.
1286  void operator=(const ValueArray31& other);
1287
1288  const T1 v1_;
1289  const T2 v2_;
1290  const T3 v3_;
1291  const T4 v4_;
1292  const T5 v5_;
1293  const T6 v6_;
1294  const T7 v7_;
1295  const T8 v8_;
1296  const T9 v9_;
1297  const T10 v10_;
1298  const T11 v11_;
1299  const T12 v12_;
1300  const T13 v13_;
1301  const T14 v14_;
1302  const T15 v15_;
1303  const T16 v16_;
1304  const T17 v17_;
1305  const T18 v18_;
1306  const T19 v19_;
1307  const T20 v20_;
1308  const T21 v21_;
1309  const T22 v22_;
1310  const T23 v23_;
1311  const T24 v24_;
1312  const T25 v25_;
1313  const T26 v26_;
1314  const T27 v27_;
1315  const T28 v28_;
1316  const T29 v29_;
1317  const T30 v30_;
1318  const T31 v31_;
1319};
1320
1321template <typename T1, typename T2, typename T3, typename T4, typename T5,
1322    typename T6, typename T7, typename T8, typename T9, typename T10,
1323    typename T11, typename T12, typename T13, typename T14, typename T15,
1324    typename T16, typename T17, typename T18, typename T19, typename T20,
1325    typename T21, typename T22, typename T23, typename T24, typename T25,
1326    typename T26, typename T27, typename T28, typename T29, typename T30,
1327    typename T31, typename T32>
1328class ValueArray32 {
1329 public:
1330  ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1331      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1332      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1333      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1),
1334      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9),
1335      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15),
1336      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21),
1337      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27),
1338      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {}
1339
1340  template <typename T>
1341  operator ParamGenerator<T>() const {
1342    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1343        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1344        v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_};
1345    return ValuesIn(array);
1346  }
1347
1348 private:
1349  // No implementation - assignment is unsupported.
1350  void operator=(const ValueArray32& other);
1351
1352  const T1 v1_;
1353  const T2 v2_;
1354  const T3 v3_;
1355  const T4 v4_;
1356  const T5 v5_;
1357  const T6 v6_;
1358  const T7 v7_;
1359  const T8 v8_;
1360  const T9 v9_;
1361  const T10 v10_;
1362  const T11 v11_;
1363  const T12 v12_;
1364  const T13 v13_;
1365  const T14 v14_;
1366  const T15 v15_;
1367  const T16 v16_;
1368  const T17 v17_;
1369  const T18 v18_;
1370  const T19 v19_;
1371  const T20 v20_;
1372  const T21 v21_;
1373  const T22 v22_;
1374  const T23 v23_;
1375  const T24 v24_;
1376  const T25 v25_;
1377  const T26 v26_;
1378  const T27 v27_;
1379  const T28 v28_;
1380  const T29 v29_;
1381  const T30 v30_;
1382  const T31 v31_;
1383  const T32 v32_;
1384};
1385
1386template <typename T1, typename T2, typename T3, typename T4, typename T5,
1387    typename T6, typename T7, typename T8, typename T9, typename T10,
1388    typename T11, typename T12, typename T13, typename T14, typename T15,
1389    typename T16, typename T17, typename T18, typename T19, typename T20,
1390    typename T21, typename T22, typename T23, typename T24, typename T25,
1391    typename T26, typename T27, typename T28, typename T29, typename T30,
1392    typename T31, typename T32, typename T33>
1393class ValueArray33 {
1394 public:
1395  ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1396      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1397      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1398      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32,
1399      T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
1400      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
1401      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
1402      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
1403      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
1404      v33_(v33) {}
1405
1406  template <typename T>
1407  operator ParamGenerator<T>() const {
1408    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1409        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1410        v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_};
1411    return ValuesIn(array);
1412  }
1413
1414 private:
1415  // No implementation - assignment is unsupported.
1416  void operator=(const ValueArray33& other);
1417
1418  const T1 v1_;
1419  const T2 v2_;
1420  const T3 v3_;
1421  const T4 v4_;
1422  const T5 v5_;
1423  const T6 v6_;
1424  const T7 v7_;
1425  const T8 v8_;
1426  const T9 v9_;
1427  const T10 v10_;
1428  const T11 v11_;
1429  const T12 v12_;
1430  const T13 v13_;
1431  const T14 v14_;
1432  const T15 v15_;
1433  const T16 v16_;
1434  const T17 v17_;
1435  const T18 v18_;
1436  const T19 v19_;
1437  const T20 v20_;
1438  const T21 v21_;
1439  const T22 v22_;
1440  const T23 v23_;
1441  const T24 v24_;
1442  const T25 v25_;
1443  const T26 v26_;
1444  const T27 v27_;
1445  const T28 v28_;
1446  const T29 v29_;
1447  const T30 v30_;
1448  const T31 v31_;
1449  const T32 v32_;
1450  const T33 v33_;
1451};
1452
1453template <typename T1, typename T2, typename T3, typename T4, typename T5,
1454    typename T6, typename T7, typename T8, typename T9, typename T10,
1455    typename T11, typename T12, typename T13, typename T14, typename T15,
1456    typename T16, typename T17, typename T18, typename T19, typename T20,
1457    typename T21, typename T22, typename T23, typename T24, typename T25,
1458    typename T26, typename T27, typename T28, typename T29, typename T30,
1459    typename T31, typename T32, typename T33, typename T34>
1460class ValueArray34 {
1461 public:
1462  ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1463      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1464      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1465      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1466      T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7),
1467      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14),
1468      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20),
1469      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26),
1470      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32),
1471      v33_(v33), v34_(v34) {}
1472
1473  template <typename T>
1474  operator ParamGenerator<T>() const {
1475    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1476        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1477        v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_};
1478    return ValuesIn(array);
1479  }
1480
1481 private:
1482  // No implementation - assignment is unsupported.
1483  void operator=(const ValueArray34& other);
1484
1485  const T1 v1_;
1486  const T2 v2_;
1487  const T3 v3_;
1488  const T4 v4_;
1489  const T5 v5_;
1490  const T6 v6_;
1491  const T7 v7_;
1492  const T8 v8_;
1493  const T9 v9_;
1494  const T10 v10_;
1495  const T11 v11_;
1496  const T12 v12_;
1497  const T13 v13_;
1498  const T14 v14_;
1499  const T15 v15_;
1500  const T16 v16_;
1501  const T17 v17_;
1502  const T18 v18_;
1503  const T19 v19_;
1504  const T20 v20_;
1505  const T21 v21_;
1506  const T22 v22_;
1507  const T23 v23_;
1508  const T24 v24_;
1509  const T25 v25_;
1510  const T26 v26_;
1511  const T27 v27_;
1512  const T28 v28_;
1513  const T29 v29_;
1514  const T30 v30_;
1515  const T31 v31_;
1516  const T32 v32_;
1517  const T33 v33_;
1518  const T34 v34_;
1519};
1520
1521template <typename T1, typename T2, typename T3, typename T4, typename T5,
1522    typename T6, typename T7, typename T8, typename T9, typename T10,
1523    typename T11, typename T12, typename T13, typename T14, typename T15,
1524    typename T16, typename T17, typename T18, typename T19, typename T20,
1525    typename T21, typename T22, typename T23, typename T24, typename T25,
1526    typename T26, typename T27, typename T28, typename T29, typename T30,
1527    typename T31, typename T32, typename T33, typename T34, typename T35>
1528class ValueArray35 {
1529 public:
1530  ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1531      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17,
1532      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25,
1533      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33,
1534      T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6),
1535      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13),
1536      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19),
1537      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25),
1538      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31),
1539      v32_(v32), v33_(v33), v34_(v34), v35_(v35) {}
1540
1541  template <typename T>
1542  operator ParamGenerator<T>() const {
1543    const T array[] = {v1_, v2_, v3_, v4_, v5_, v6_, v7_, v8_, v9_, v10_, v11_,
1544        v12_, v13_, v14_, v15_, v16_, v17_, v18_, v19_, v20_, v21_, v22_, v23_,
1545        v24_, v25_, v26_, v27_, v28_, v29_, v30_, v31_, v32_, v33_, v34_,
1546        v35_};
1547    return ValuesIn(array);
1548  }
1549
1550 private:
1551  // No implementation - assignment is unsupported.
1552  void operator=(const ValueArray35& other);
1553
1554  const T1 v1_;
1555  const T2 v2_;
1556  const T3 v3_;
1557  const T4 v4_;
1558  const T5 v5_;
1559  const T6 v6_;
1560  const T7 v7_;
1561  const T8 v8_;
1562  const T9 v9_;
1563  const T10 v10_;
1564  const T11 v11_;
1565  const T12 v12_;
1566  const T13 v13_;
1567  const T14 v14_;
1568  const T15 v15_;
1569  const T16 v16_;
1570  const T17 v17_;
1571  const T18 v18_;
1572  const T19 v19_;
1573  const T20 v20_;
1574  const T21 v21_;
1575  const T22 v22_;
1576  const T23 v23_;
1577  const T24 v24_;
1578  const T25 v25_;
1579  const T26 v26_;
1580  const T27 v27_;
1581  const T28 v28_;
1582  const T29 v29_;
1583  const T30 v30_;
1584  const T31 v31_;
1585  const T32 v32_;
1586  const T33 v33_;
1587  const T34 v34_;
1588  const T35 v35_;
1589};
1590
1591template <typename T1, typename T2, typename T3, typename T4, typename T5,
1592    typename T6, typename T7, typename T8, typename T9, typename T10,
1593    typename T11, typename T12, typename T13, typename T14, typename T15,
1594    typename T16, typename T17, typename T18, typename T19, typename T20,
1595    typename T21, typename T22, typename T23, typename T24, typename T25,
1596    typename T26, typename T27, typename T28, typename T29, typename T30,
1597    typename T31, typename T32, typename T33, typename T34, typename T35,
1598    typename T36>
1599class ValueArray36 {
1600 public:
1601  ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9,
1602      T10 v10, T11 

Large files files are truncated, but you can click here to view the full file