diff options
18 files changed, 422 insertions, 4859 deletions
| diff --git a/googlemock/include/gmock/gmock-actions.h b/googlemock/include/gmock/gmock-actions.h index 8e7e0e7b..d4af9490 100644 --- a/googlemock/include/gmock/gmock-actions.h +++ b/googlemock/include/gmock/gmock-actions.h @@ -43,6 +43,7 @@  #include <algorithm>  #include <string> +#include <utility>  #include "gmock/internal/gmock-internal-utils.h"  #include "gmock/internal/gmock-port.h" @@ -527,7 +528,7 @@ class ActionAdaptor : public ActionInterface<F1> {  // on return. Useful for move-only types, but could be used on any type.  template <typename T>  struct ByMoveWrapper { -  explicit ByMoveWrapper(T value) : payload(internal::move(value)) {} +  explicit ByMoveWrapper(T value) : payload(std::move(value)) {}    T payload;  }; @@ -564,7 +565,7 @@ class ReturnAction {    // Constructs a ReturnAction object from the value to be returned.    // 'value' is passed by value instead of by const reference in order    // to allow Return("string literal") to compile. -  explicit ReturnAction(R value) : value_(new R(internal::move(value))) {} +  explicit ReturnAction(R value) : value_(new R(std::move(value))) {}    // This template type conversion operator allows Return(x) to be    // used in ANY function that returns x's type. @@ -632,7 +633,7 @@ class ReturnAction {        GTEST_CHECK_(!performed_)            << "A ByMove() action should only be performed once.";        performed_ = true; -      return internal::move(wrapper_->payload); +      return std::move(wrapper_->payload);      }     private: @@ -1116,7 +1117,7 @@ Action<To>::Action(const Action<From>& from)  // will trigger a compiler error about using array as initializer.  template <typename R>  internal::ReturnAction<R> Return(R value) { -  return internal::ReturnAction<R>(internal::move(value)); +  return internal::ReturnAction<R>(std::move(value));  }  // Creates an action that returns NULL. @@ -1149,7 +1150,7 @@ inline internal::ReturnRefOfCopyAction<R> ReturnRefOfCopy(const R& x) {  // invariant.  template <typename R>  internal::ByMoveWrapper<R> ByMove(R x) { -  return internal::ByMoveWrapper<R>(internal::move(x)); +  return internal::ByMoveWrapper<R>(std::move(x));  }  // Creates an action that does the default action for the give mock function. diff --git a/googlemock/include/gmock/gmock-generated-actions.h b/googlemock/include/gmock/gmock-generated-actions.h index 3ea14dde..0845b221 100644 --- a/googlemock/include/gmock/gmock-generated-actions.h +++ b/googlemock/include/gmock/gmock-generated-actions.h @@ -41,6 +41,8 @@  #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_  #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ +#include <utility> +  #include "gmock/gmock-actions.h"  #include "gmock/internal/gmock-port.h" @@ -1161,90 +1163,67 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,  #define GMOCK_INTERNAL_INIT_AND_0_VALUE_PARAMS()\      ()  #define GMOCK_INTERNAL_INIT_AND_1_VALUE_PARAMS(p0)\ -    (p0##_type gmock_p0) : p0(::testing::internal::move(gmock_p0)) +    (p0##_type gmock_p0) : p0(::std::move(gmock_p0))  #define GMOCK_INTERNAL_INIT_AND_2_VALUE_PARAMS(p0, p1)\ -    (p0##_type gmock_p0, \ -        p1##_type gmock_p1) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)) +    (p0##_type gmock_p0, p1##_type gmock_p1) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1))  #define GMOCK_INTERNAL_INIT_AND_3_VALUE_PARAMS(p0, p1, p2)\      (p0##_type gmock_p0, p1##_type gmock_p1, \ -        p2##_type gmock_p2) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)) +        p2##_type gmock_p2) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2))  #define GMOCK_INTERNAL_INIT_AND_4_VALUE_PARAMS(p0, p1, p2, p3)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ -        p3##_type gmock_p3) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)) +        p3##_type gmock_p3) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3))  #define GMOCK_INTERNAL_INIT_AND_5_VALUE_PARAMS(p0, p1, p2, p3, p4)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ -        p3##_type gmock_p3, \ -        p4##_type gmock_p4) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)) +        p3##_type gmock_p3, p4##_type gmock_p4) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4))  #define GMOCK_INTERNAL_INIT_AND_6_VALUE_PARAMS(p0, p1, p2, p3, p4, p5)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \          p3##_type gmock_p3, p4##_type gmock_p4, \ -        p5##_type gmock_p5) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)) +        p5##_type gmock_p5) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5))  #define GMOCK_INTERNAL_INIT_AND_7_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ -        p6##_type gmock_p6) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)) +        p6##_type gmock_p6) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6))  #define GMOCK_INTERNAL_INIT_AND_8_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, p7)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ -        p6##_type gmock_p6, \ -        p7##_type gmock_p7) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)) +        p6##_type gmock_p6, p7##_type gmock_p7) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7))  #define GMOCK_INTERNAL_INIT_AND_9_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \      p7, p8)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \          p6##_type gmock_p6, p7##_type gmock_p7, \ -        p8##_type gmock_p8) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)), \ -        p8(::testing::internal::move(gmock_p8)) +        p8##_type gmock_p8) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8))  #define GMOCK_INTERNAL_INIT_AND_10_VALUE_PARAMS(p0, p1, p2, p3, p4, p5, p6, \      p7, p8, p9)\      (p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \          p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \          p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ -        p9##_type gmock_p9) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)), \ -        p8(::testing::internal::move(gmock_p8)), \ -        p9(::testing::internal::move(gmock_p9)) +        p9##_type gmock_p9) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)), \ +        p9(::std::move(gmock_p9))  // Declares the fields for storing the value parameters.  #define GMOCK_INTERNAL_DEFN_AND_0_VALUE_PARAMS() @@ -1481,7 +1460,7 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,    class name##ActionP {\     public:\      explicit name##ActionP(p0##_type gmock_p0) : \ -        p0(::testing::internal::forward<p0##_type>(gmock_p0)) {}\ +        p0(::std::forward<p0##_type>(gmock_p0)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1490,7 +1469,7 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        typedef typename ::testing::internal::Function<F>::ArgumentTuple\            args_type;\        explicit gmock_Impl(p0##_type gmock_p0) : \ -          p0(::testing::internal::forward<p0##_type>(gmock_p0)) {}\ +          p0(::std::forward<p0##_type>(gmock_p0)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1533,8 +1512,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,    class name##ActionP2 {\     public:\      name##ActionP2(p0##_type gmock_p0, \ -        p1##_type gmock_p1) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)) {}\ +        p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1543,8 +1522,8 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        typedef typename ::testing::internal::Function<F>::ArgumentTuple\            args_type;\        gmock_Impl(p0##_type gmock_p0, \ -          p1##_type gmock_p1) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)) {}\ +          p1##_type gmock_p1) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1590,9 +1569,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,    class name##ActionP3 {\     public:\      name##ActionP3(p0##_type gmock_p0, p1##_type gmock_p1, \ -        p2##_type gmock_p2) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)) {}\ +        p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1601,9 +1580,9 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        typedef typename ::testing::internal::Function<F>::ArgumentTuple\            args_type;\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, \ -          p2##_type gmock_p2) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)) {}\ +          p2##_type gmock_p2) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1654,10 +1633,10 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,     public:\      name##ActionP4(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, \ -        p3##_type gmock_p3) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)) {}\ +        p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1666,10 +1645,10 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        typedef typename ::testing::internal::Function<F>::ArgumentTuple\            args_type;\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \ -          p3##_type gmock_p3) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)) {}\ +          p3##_type gmock_p3) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1726,11 +1705,11 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,     public:\      name##ActionP5(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, \ -        p4##_type gmock_p4) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)) {}\ +        p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1740,11 +1719,11 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,            args_type;\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, \ -          p4##_type gmock_p4) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)) {}\ +          p4##_type gmock_p4) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1803,12 +1782,12 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,     public:\      name##ActionP6(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ -        p5##_type gmock_p5) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -        p5(::testing::internal::forward<p5##_type>(gmock_p5)) {}\ +        p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)), \ +        p5(::std::forward<p5##_type>(gmock_p5)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1818,12 +1797,12 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,            args_type;\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, \ -          p5##_type gmock_p5) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -          p5(::testing::internal::forward<p5##_type>(gmock_p5)) {}\ +          p5##_type gmock_p5) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)), \ +          p5(::std::forward<p5##_type>(gmock_p5)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1886,13 +1865,13 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,      name##ActionP7(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, \ -        p6##_type gmock_p6) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -        p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -        p6(::testing::internal::forward<p6##_type>(gmock_p6)) {}\ +        p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)), \ +        p5(::std::forward<p5##_type>(gmock_p5)), \ +        p6(::std::forward<p6##_type>(gmock_p6)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1902,13 +1881,13 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,            args_type;\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \ -          p6##_type gmock_p6) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -          p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -          p6(::testing::internal::forward<p6##_type>(gmock_p6)) {}\ +          p6##_type gmock_p6) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)), \ +          p5(::std::forward<p5##_type>(gmock_p5)), \ +          p6(::std::forward<p6##_type>(gmock_p6)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -1977,14 +1956,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,      name##ActionP8(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, \ -        p7##_type gmock_p7) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -        p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -        p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -        p7(::testing::internal::forward<p7##_type>(gmock_p7)) {}\ +        p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)), \ +        p5(::std::forward<p5##_type>(gmock_p5)), \ +        p6(::std::forward<p6##_type>(gmock_p6)), \ +        p7(::std::forward<p7##_type>(gmock_p7)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -1995,14 +1974,14 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, \ -          p7##_type gmock_p7) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -          p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -          p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -          p7(::testing::internal::forward<p7##_type>(gmock_p7)) {}\ +          p7##_type gmock_p7) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)), \ +          p5(::std::forward<p5##_type>(gmock_p5)), \ +          p6(::std::forward<p6##_type>(gmock_p6)), \ +          p7(::std::forward<p7##_type>(gmock_p7)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -2075,15 +2054,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,      name##ActionP9(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ -        p8##_type gmock_p8) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -        p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -        p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -        p7(::testing::internal::forward<p7##_type>(gmock_p7)), \ -        p8(::testing::internal::forward<p8##_type>(gmock_p8)) {}\ +        p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)), \ +        p5(::std::forward<p5##_type>(gmock_p5)), \ +        p6(::std::forward<p6##_type>(gmock_p6)), \ +        p7(::std::forward<p7##_type>(gmock_p7)), \ +        p8(::std::forward<p8##_type>(gmock_p8)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -2094,15 +2073,15 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, p7##_type gmock_p7, \ -          p8##_type gmock_p8) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -          p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -          p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -          p7(::testing::internal::forward<p7##_type>(gmock_p7)), \ -          p8(::testing::internal::forward<p8##_type>(gmock_p8)) {}\ +          p8##_type gmock_p8) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)), \ +          p5(::std::forward<p5##_type>(gmock_p5)), \ +          p6(::std::forward<p6##_type>(gmock_p6)), \ +          p7(::std::forward<p7##_type>(gmock_p7)), \ +          p8(::std::forward<p8##_type>(gmock_p8)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ @@ -2180,16 +2159,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \          p8##_type gmock_p8, \ -        p9##_type gmock_p9) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -        p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -        p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -        p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -        p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -        p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -        p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -        p7(::testing::internal::forward<p7##_type>(gmock_p7)), \ -        p8(::testing::internal::forward<p8##_type>(gmock_p8)), \ -        p9(::testing::internal::forward<p9##_type>(gmock_p9)) {}\ +        p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \ +        p1(::std::forward<p1##_type>(gmock_p1)), \ +        p2(::std::forward<p2##_type>(gmock_p2)), \ +        p3(::std::forward<p3##_type>(gmock_p3)), \ +        p4(::std::forward<p4##_type>(gmock_p4)), \ +        p5(::std::forward<p5##_type>(gmock_p5)), \ +        p6(::std::forward<p6##_type>(gmock_p6)), \ +        p7(::std::forward<p7##_type>(gmock_p7)), \ +        p8(::std::forward<p8##_type>(gmock_p8)), \ +        p9(::std::forward<p9##_type>(gmock_p9)) {}\      template <typename F>\      class gmock_Impl : public ::testing::ActionInterface<F> {\       public:\ @@ -2200,16 +2179,16 @@ DoAll(Action1 a1, Action2 a2, Action3 a3, Action4 a4, Action5 a5, Action6 a6,        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \ -          p9##_type gmock_p9) : p0(::testing::internal::forward<p0##_type>(gmock_p0)), \ -          p1(::testing::internal::forward<p1##_type>(gmock_p1)), \ -          p2(::testing::internal::forward<p2##_type>(gmock_p2)), \ -          p3(::testing::internal::forward<p3##_type>(gmock_p3)), \ -          p4(::testing::internal::forward<p4##_type>(gmock_p4)), \ -          p5(::testing::internal::forward<p5##_type>(gmock_p5)), \ -          p6(::testing::internal::forward<p6##_type>(gmock_p6)), \ -          p7(::testing::internal::forward<p7##_type>(gmock_p7)), \ -          p8(::testing::internal::forward<p8##_type>(gmock_p8)), \ -          p9(::testing::internal::forward<p9##_type>(gmock_p9)) {}\ +          p9##_type gmock_p9) : p0(::std::forward<p0##_type>(gmock_p0)), \ +          p1(::std::forward<p1##_type>(gmock_p1)), \ +          p2(::std::forward<p2##_type>(gmock_p2)), \ +          p3(::std::forward<p3##_type>(gmock_p3)), \ +          p4(::std::forward<p4##_type>(gmock_p4)), \ +          p5(::std::forward<p5##_type>(gmock_p5)), \ +          p6(::std::forward<p6##_type>(gmock_p6)), \ +          p7(::std::forward<p7##_type>(gmock_p7)), \ +          p8(::std::forward<p8##_type>(gmock_p8)), \ +          p9(::std::forward<p9##_type>(gmock_p9)) {}\        virtual return_type Perform(const args_type& args) {\          return ::testing::internal::ActionHelper<return_type, gmock_Impl>::\              Perform(this, args);\ diff --git a/googlemock/include/gmock/gmock-generated-actions.h.pump b/googlemock/include/gmock/gmock-generated-actions.h.pump index 2794ebb7..bc22be8e 100644 --- a/googlemock/include/gmock/gmock-generated-actions.h.pump +++ b/googlemock/include/gmock/gmock-generated-actions.h.pump @@ -43,6 +43,8 @@ $$}} This meta comment fixes auto-indentation in editors.  #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_  #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_ACTIONS_H_ +#include <utility> +  #include "gmock/gmock-actions.h"  #include "gmock/internal/gmock-port.h" @@ -525,7 +527,7 @@ _VALUE_PARAMS($for j, [[p$j]]) $for j [[, typename p$j##_type]]  $for i [[  $range j 0..i-1  #define GMOCK_INTERNAL_INIT_AND_$i[[]]_VALUE_PARAMS($for j, [[p$j]])\ -    ($for j, [[p$j##_type gmock_p$j]])$if i>0 [[ : ]]$for j, [[p$j(::testing::internal::move(gmock_p$j))]] +    ($for j, [[p$j##_type gmock_p$j]])$if i>0 [[ : ]]$for j, [[p$j(::std::move(gmock_p$j))]]  ]] @@ -658,7 +660,7 @@ $var class_name = [[name##Action[[$if i==0 [[]] $elif i==1 [[P]]  $range j 0..i-1  $var ctor_param_list = [[$for j, [[p$j##_type gmock_p$j]]]]  $var param_types_and_names = [[$for j, [[p$j##_type p$j]]]] -$var inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::testing::internal::forward<p$j##_type>(gmock_p$j))]]]]]] +$var inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::std::forward<p$j##_type>(gmock_p$j))]]]]]]  $var param_field_decls = [[$for j  [[ diff --git a/googlemock/include/gmock/gmock-generated-function-mockers.h b/googlemock/include/gmock/gmock-generated-function-mockers.h index 98861156..38a7d15d 100644 --- a/googlemock/include/gmock/gmock-generated-function-mockers.h +++ b/googlemock/include/gmock/gmock-generated-function-mockers.h @@ -41,6 +41,8 @@  #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_  #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ +#include <utility> +  #include "gmock/gmock-spec-builders.h"  #include "gmock/internal/gmock-internal-utils.h" @@ -98,7 +100,7 @@ class FunctionMocker<R(A1)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1)));    }  }; @@ -118,8 +120,8 @@ class FunctionMocker<R(A1, A2)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2)));    }  }; @@ -140,8 +142,8 @@ class FunctionMocker<R(A1, A2, A3)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3)));    }  }; @@ -162,9 +164,8 @@ class FunctionMocker<R(A1, A2, A3, A4)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4)));    }  }; @@ -186,9 +187,9 @@ class FunctionMocker<R(A1, A2, A3, A4, A5)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5)));    }  }; @@ -211,10 +212,9 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5), -        internal::forward<A6>(a6))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5), std::forward<A6>(a6)));    }  }; @@ -237,10 +237,9 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5), -        internal::forward<A6>(a6), internal::forward<A7>(a7))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7)));    }  }; @@ -263,11 +262,10 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5), -        internal::forward<A6>(a6), internal::forward<A7>(a7), -        internal::forward<A8>(a8))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7), +        std::forward<A8>(a8)));    }  }; @@ -292,11 +290,10 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5), -        internal::forward<A6>(a6), internal::forward<A7>(a7), -        internal::forward<A8>(a8), internal::forward<A9>(a9))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7), +        std::forward<A8>(a8), std::forward<A9>(a9)));    }  }; @@ -323,12 +320,10 @@ class FunctionMocker<R(A1, A2, A3, A4, A5, A6, A7, A8, A9, A10)> : public      // by the C++ standard [14.6.4] here, as the base class type is      // dependent on the template argument (and thus shouldn't be      // looked into when resolving InvokeWith). -    return this->InvokeWith(ArgumentTuple(internal::forward<A1>(a1), -        internal::forward<A2>(a2), internal::forward<A3>(a3), -        internal::forward<A4>(a4), internal::forward<A5>(a5), -        internal::forward<A6>(a6), internal::forward<A7>(a7), -        internal::forward<A8>(a8), internal::forward<A9>(a9), -        internal::forward<A10>(a10))); +    return this->InvokeWith(ArgumentTuple(std::forward<A1>(a1), +        std::forward<A2>(a2), std::forward<A3>(a3), std::forward<A4>(a4), +        std::forward<A5>(a5), std::forward<A6>(a6), std::forward<A7>(a7), +        std::forward<A8>(a8), std::forward<A9>(a9), std::forward<A10>(a10)));    }  }; @@ -451,7 +446,7 @@ using internal::FunctionMocker;          this_method_does_not_take_1_argument); \      GMOCK_MOCKER_(1, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(1, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1)); \    } \    ::testing::MockSpec<__VA_ARGS__> \ @@ -479,9 +474,9 @@ using internal::FunctionMocker;          this_method_does_not_take_2_arguments); \      GMOCK_MOCKER_(2, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(2, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -511,10 +506,10 @@ using internal::FunctionMocker;          this_method_does_not_take_3_arguments); \      GMOCK_MOCKER_(3, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(3, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -547,11 +542,11 @@ using internal::FunctionMocker;          this_method_does_not_take_4_arguments); \      GMOCK_MOCKER_(4, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(4, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -587,12 +582,12 @@ using internal::FunctionMocker;          this_method_does_not_take_5_arguments); \      GMOCK_MOCKER_(5, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(5, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -631,13 +626,13 @@ using internal::FunctionMocker;          this_method_does_not_take_6_arguments); \      GMOCK_MOCKER_(6, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(6, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ +  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -678,14 +673,14 @@ using internal::FunctionMocker;          this_method_does_not_take_7_arguments); \      GMOCK_MOCKER_(7, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(7, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ +  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ +  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -729,15 +724,15 @@ using internal::FunctionMocker;          this_method_does_not_take_8_arguments); \      GMOCK_MOCKER_(8, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(8, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ +  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ +  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ +  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -784,16 +779,16 @@ using internal::FunctionMocker;          this_method_does_not_take_9_arguments); \      GMOCK_MOCKER_(9, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(9, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ +  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ +  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ +  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \ +  ::std::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ @@ -843,17 +838,17 @@ using internal::FunctionMocker;          this_method_does_not_take_10_arguments); \      GMOCK_MOCKER_(10, constness, Method).SetOwnerAndName(this, #Method); \      return GMOCK_MOCKER_(10, constness, \ -        Method).Invoke(::testing::internal::forward<GMOCK_ARG_(tn, 1, \ +        Method).Invoke(::std::forward<GMOCK_ARG_(tn, 1, \          __VA_ARGS__)>(gmock_a1), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9), \ -  ::testing::internal::forward<GMOCK_ARG_(tn, 10, __VA_ARGS__)>(gmock_a10)); \ +  ::std::forward<GMOCK_ARG_(tn, 2, __VA_ARGS__)>(gmock_a2), \ +  ::std::forward<GMOCK_ARG_(tn, 3, __VA_ARGS__)>(gmock_a3), \ +  ::std::forward<GMOCK_ARG_(tn, 4, __VA_ARGS__)>(gmock_a4), \ +  ::std::forward<GMOCK_ARG_(tn, 5, __VA_ARGS__)>(gmock_a5), \ +  ::std::forward<GMOCK_ARG_(tn, 6, __VA_ARGS__)>(gmock_a6), \ +  ::std::forward<GMOCK_ARG_(tn, 7, __VA_ARGS__)>(gmock_a7), \ +  ::std::forward<GMOCK_ARG_(tn, 8, __VA_ARGS__)>(gmock_a8), \ +  ::std::forward<GMOCK_ARG_(tn, 9, __VA_ARGS__)>(gmock_a9), \ +  ::std::forward<GMOCK_ARG_(tn, 10, __VA_ARGS__)>(gmock_a10)); \    } \    ::testing::MockSpec<__VA_ARGS__> \        gmock_##Method(GMOCK_MATCHER_(tn, 1, __VA_ARGS__) gmock_a1, \ diff --git a/googlemock/include/gmock/gmock-generated-function-mockers.h.pump b/googlemock/include/gmock/gmock-generated-function-mockers.h.pump index e05b18db..183e652c 100644 --- a/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +++ b/googlemock/include/gmock/gmock-generated-function-mockers.h.pump @@ -42,6 +42,8 @@ $var n = 10  $$ The maximum arity we support.  #ifndef GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_  #define GMOCK_INCLUDE_GMOCK_GMOCK_GENERATED_FUNCTION_MOCKERS_H_ +#include <utility> +  #include "gmock/gmock-spec-builders.h"  #include "gmock/internal/gmock-internal-utils.h" @@ -69,7 +71,7 @@ $for i [[  $range j 1..i  $var typename_As = [[$for j [[, typename A$j]]]]  $var As = [[$for j, [[A$j]]]] -$var as = [[$for j, [[internal::forward<A$j>(a$j)]]]] +$var as = [[$for j, [[std::forward<A$j>(a$j)]]]]  $var Aas = [[$for j, [[A$j a$j]]]]  $var ms = [[$for j, [[m$j]]]]  $var matchers = [[$for j, [[const Matcher<A$j>& m$j]]]] @@ -184,7 +186,7 @@ $for i [[  $range j 1..i  $var arg_as = [[$for j, [[GMOCK_ARG_(tn, $j, __VA_ARGS__) gmock_a$j]]]]  $var as = [[$for j, \ -  [[::testing::internal::forward<GMOCK_ARG_(tn, $j, __VA_ARGS__)>(gmock_a$j)]]]] +  [[::std::forward<GMOCK_ARG_(tn, $j, __VA_ARGS__)>(gmock_a$j)]]]]  $var matcher_arg_as = [[$for j, \                       [[GMOCK_MATCHER_(tn, $j, __VA_ARGS__) gmock_a$j]]]]  $var matcher_as = [[$for j, [[gmock_a$j]]]] diff --git a/googlemock/include/gmock/gmock-generated-matchers.h b/googlemock/include/gmock/gmock-generated-matchers.h index 166122a7..1161e870 100644 --- a/googlemock/include/gmock/gmock-generated-matchers.h +++ b/googlemock/include/gmock/gmock-generated-matchers.h @@ -43,6 +43,7 @@  #include <iterator>  #include <sstream>  #include <string> +#include <utility>  #include <vector>  #include "gmock/gmock-matchers.h" @@ -380,7 +381,6 @@ Args(const InnerMatcher& matcher) {  } -  }  // namespace testing @@ -657,7 +657,7 @@ Args(const InnerMatcher& matcher) {          GTEST_REFERENCE_TO_CONST_(arg_type)> {\       public:\        explicit gmock_Impl(p0##_type gmock_p0)\ -           : p0(::testing::internal::move(gmock_p0)) {}\ +           : p0(::std::move(gmock_p0)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -685,8 +685,7 @@ Args(const InnerMatcher& matcher) {        return ::testing::Matcher<arg_type>(\            new gmock_Impl<arg_type>(p0));\      }\ -    explicit name##MatcherP(p0##_type gmock_p0) : \ -        p0(::testing::internal::move(gmock_p0)) {\ +    explicit name##MatcherP(p0##_type gmock_p0) : p0(::std::move(gmock_p0)) {\      }\      p0##_type const p0;\     private:\ @@ -711,8 +710,7 @@ Args(const InnerMatcher& matcher) {          GTEST_REFERENCE_TO_CONST_(arg_type)> {\       public:\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -742,8 +740,8 @@ Args(const InnerMatcher& matcher) {            new gmock_Impl<arg_type>(p0, p1));\      }\      name##MatcherP2(p0##_type gmock_p0, \ -        p1##_type gmock_p1) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)) {\ +        p1##_type gmock_p1) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -771,9 +769,8 @@ Args(const InnerMatcher& matcher) {          GTEST_REFERENCE_TO_CONST_(arg_type)> {\       public:\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -804,9 +801,8 @@ Args(const InnerMatcher& matcher) {            new gmock_Impl<arg_type>(p0, p1, p2));\      }\      name##MatcherP3(p0##_type gmock_p0, p1##_type gmock_p1, \ -        p2##_type gmock_p2) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)) {\ +        p2##_type gmock_p2) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -837,10 +833,8 @@ Args(const InnerMatcher& matcher) {       public:\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -873,11 +867,9 @@ Args(const InnerMatcher& matcher) {            new gmock_Impl<arg_type>(p0, p1, p2, p3));\      }\      name##MatcherP4(p0##_type gmock_p0, p1##_type gmock_p1, \ -        p2##_type gmock_p2, \ -        p3##_type gmock_p3) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)) {\ +        p2##_type gmock_p2, p3##_type gmock_p3) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -913,11 +905,9 @@ Args(const InnerMatcher& matcher) {       public:\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -952,11 +942,9 @@ Args(const InnerMatcher& matcher) {      }\      name##MatcherP5(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, \ -        p4##_type gmock_p4) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)) {\ +        p4##_type gmock_p4) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -993,12 +981,9 @@ Args(const InnerMatcher& matcher) {       public:\        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)), \ -               p5(::testing::internal::move(gmock_p5)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -1034,12 +1019,10 @@ Args(const InnerMatcher& matcher) {      }\      name##MatcherP6(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ -        p5##_type gmock_p5) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)) {\ +        p5##_type gmock_p5) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -1079,13 +1062,10 @@ Args(const InnerMatcher& matcher) {        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)), \ -               p5(::testing::internal::move(gmock_p5)), \ -               p6(::testing::internal::move(gmock_p6)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \ +               p6(::std::move(gmock_p6)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -1123,14 +1103,10 @@ Args(const InnerMatcher& matcher) {      }\      name##MatcherP7(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \ -        p5##_type gmock_p5, \ -        p6##_type gmock_p6) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)) {\ +        p5##_type gmock_p5, p6##_type gmock_p6) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -1174,14 +1150,10 @@ Args(const InnerMatcher& matcher) {        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, p7##_type gmock_p7)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)), \ -               p5(::testing::internal::move(gmock_p5)), \ -               p6(::testing::internal::move(gmock_p6)), \ -               p7(::testing::internal::move(gmock_p7)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \ +               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -1221,14 +1193,11 @@ Args(const InnerMatcher& matcher) {      name##MatcherP8(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, \ -        p7##_type gmock_p7) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)) {\ +        p7##_type gmock_p7) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -1275,15 +1244,11 @@ Args(const InnerMatcher& matcher) {        gmock_Impl(p0##_type gmock_p0, p1##_type gmock_p1, p2##_type gmock_p2, \            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)), \ -               p5(::testing::internal::move(gmock_p5)), \ -               p6(::testing::internal::move(gmock_p6)), \ -               p7(::testing::internal::move(gmock_p7)), \ -               p8(::testing::internal::move(gmock_p8)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \ +               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)), \ +               p8(::std::move(gmock_p8)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -1324,15 +1289,11 @@ Args(const InnerMatcher& matcher) {      name##MatcherP9(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ -        p8##_type gmock_p8) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)), \ -        p8(::testing::internal::move(gmock_p8)) {\ +        p8##_type gmock_p8) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ @@ -1383,16 +1344,11 @@ Args(const InnerMatcher& matcher) {            p3##_type gmock_p3, p4##_type gmock_p4, p5##_type gmock_p5, \            p6##_type gmock_p6, p7##_type gmock_p7, p8##_type gmock_p8, \            p9##_type gmock_p9)\ -           : p0(::testing::internal::move(gmock_p0)), \ -               p1(::testing::internal::move(gmock_p1)), \ -               p2(::testing::internal::move(gmock_p2)), \ -               p3(::testing::internal::move(gmock_p3)), \ -               p4(::testing::internal::move(gmock_p4)), \ -               p5(::testing::internal::move(gmock_p5)), \ -               p6(::testing::internal::move(gmock_p6)), \ -               p7(::testing::internal::move(gmock_p7)), \ -               p8(::testing::internal::move(gmock_p8)), \ -               p9(::testing::internal::move(gmock_p9)) {}\ +           : p0(::std::move(gmock_p0)), p1(::std::move(gmock_p1)), \ +               p2(::std::move(gmock_p2)), p3(::std::move(gmock_p3)), \ +               p4(::std::move(gmock_p4)), p5(::std::move(gmock_p5)), \ +               p6(::std::move(gmock_p6)), p7(::std::move(gmock_p7)), \ +               p8(::std::move(gmock_p8)), p9(::std::move(gmock_p9)) {}\        virtual bool MatchAndExplain(\            GTEST_REFERENCE_TO_CONST_(arg_type) arg,\            ::testing::MatchResultListener* result_listener) const;\ @@ -1434,17 +1390,12 @@ Args(const InnerMatcher& matcher) {      name##MatcherP10(p0##_type gmock_p0, p1##_type gmock_p1, \          p2##_type gmock_p2, p3##_type gmock_p3, p4##_type gmock_p4, \          p5##_type gmock_p5, p6##_type gmock_p6, p7##_type gmock_p7, \ -        p8##_type gmock_p8, \ -        p9##_type gmock_p9) : p0(::testing::internal::move(gmock_p0)), \ -        p1(::testing::internal::move(gmock_p1)), \ -        p2(::testing::internal::move(gmock_p2)), \ -        p3(::testing::internal::move(gmock_p3)), \ -        p4(::testing::internal::move(gmock_p4)), \ -        p5(::testing::internal::move(gmock_p5)), \ -        p6(::testing::internal::move(gmock_p6)), \ -        p7(::testing::internal::move(gmock_p7)), \ -        p8(::testing::internal::move(gmock_p8)), \ -        p9(::testing::internal::move(gmock_p9)) {\ +        p8##_type gmock_p8, p9##_type gmock_p9) : p0(::std::move(gmock_p0)), \ +        p1(::std::move(gmock_p1)), p2(::std::move(gmock_p2)), \ +        p3(::std::move(gmock_p3)), p4(::std::move(gmock_p4)), \ +        p5(::std::move(gmock_p5)), p6(::std::move(gmock_p6)), \ +        p7(::std::move(gmock_p7)), p8(::std::move(gmock_p8)), \ +        p9(::std::move(gmock_p9)) {\      }\      p0##_type const p0;\      p1##_type const p1;\ diff --git a/googlemock/include/gmock/gmock-generated-matchers.h.pump b/googlemock/include/gmock/gmock-generated-matchers.h.pump index 29b004d2..dcb42435 100644 --- a/googlemock/include/gmock/gmock-generated-matchers.h.pump +++ b/googlemock/include/gmock/gmock-generated-matchers.h.pump @@ -45,6 +45,7 @@ $$ }} This line fixes auto-indentation of the following code in Emacs.  #include <iterator>  #include <sstream>  #include <string> +#include <utility>  #include <vector>  #include "gmock/gmock-matchers.h" @@ -442,8 +443,8 @@ $var template = [[$if i==0 [[]] $else [[  ]]]]  $var ctor_param_list = [[$for j, [[p$j##_type gmock_p$j]]]]  $var impl_ctor_param_list = [[$for j, [[p$j##_type gmock_p$j]]]] -$var impl_inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::testing::internal::move(gmock_p$j))]]]]]] -$var inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::testing::internal::move(gmock_p$j))]]]]]] +$var impl_inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::std::move(gmock_p$j))]]]]]] +$var inits = [[$if i==0 [[]] $else [[ : $for j, [[p$j(::std::move(gmock_p$j))]]]]]]  $var params = [[$for j, [[p$j]]]]  $var param_types = [[$if i==0 [[]] $else [[<$for j, [[p$j##_type]]>]]]]  $var param_types_and_names = [[$for j, [[p$j##_type p$j]]]] diff --git a/googlemock/include/gmock/gmock-matchers.h b/googlemock/include/gmock/gmock-matchers.h index cdb7367b..6e8bc036 100644 --- a/googlemock/include/gmock/gmock-matchers.h +++ b/googlemock/include/gmock/gmock-matchers.h @@ -1717,7 +1717,7 @@ class AllOfMatcherImpl      : public MatcherInterface<GTEST_REFERENCE_TO_CONST_(T)> {   public:    explicit AllOfMatcherImpl(std::vector<Matcher<T> > matchers) -      : matchers_(internal::move(matchers)) {} +      : matchers_(std::move(matchers)) {}    virtual void DescribeTo(::std::ostream* os) const {      *os << "("; @@ -1791,7 +1791,7 @@ class VariadicMatcher {    operator Matcher<T>() const {      std::vector<Matcher<T> > values;      CreateVariadicMatcher<T>(&values, std::integral_constant<size_t, 0>()); -    return Matcher<T>(new CombiningMatcher<T>(internal::move(values))); +    return Matcher<T>(new CombiningMatcher<T>(std::move(values)));    }   private: @@ -1824,7 +1824,7 @@ class AnyOfMatcherImpl      : public MatcherInterface<GTEST_REFERENCE_TO_CONST_(T)> {   public:    explicit AnyOfMatcherImpl(std::vector<Matcher<T> > matchers) -      : matchers_(internal::move(matchers)) {} +      : matchers_(std::move(matchers)) {}    virtual void DescribeTo(::std::ostream* os) const {      *os << "("; @@ -1965,7 +1965,7 @@ class MatcherAsPredicate {  template <typename M>  class PredicateFormatterFromMatcher {   public: -  explicit PredicateFormatterFromMatcher(M m) : matcher_(internal::move(m)) {} +  explicit PredicateFormatterFromMatcher(M m) : matcher_(std::move(m)) {}    // This template () operator allows a PredicateFormatterFromMatcher    // object to act as a predicate-formatter suitable for using with @@ -2009,7 +2009,7 @@ class PredicateFormatterFromMatcher {  template <typename M>  inline PredicateFormatterFromMatcher<M>  MakePredicateFormatterFromMatcher(M matcher) { -  return PredicateFormatterFromMatcher<M>(internal::move(matcher)); +  return PredicateFormatterFromMatcher<M>(std::move(matcher));  }  // Implements the polymorphic floating point equality matcher, which matches @@ -2569,7 +2569,7 @@ template <typename Callable, typename InnerMatcher>  class ResultOfMatcher {   public:    ResultOfMatcher(Callable callable, InnerMatcher matcher) -      : callable_(internal::move(callable)), matcher_(internal::move(matcher)) { +      : callable_(std::move(callable)), matcher_(std::move(matcher)) {      CallableTraits<Callable>::CheckIsValid(callable_);    } @@ -4008,7 +4008,7 @@ template <typename T>  class VariantMatcher {   public:    explicit VariantMatcher(::testing::Matcher<const T&> matcher) -      : matcher_(internal::move(matcher)) {} +      : matcher_(std::move(matcher)) {}    template <typename Variant>    bool MatchAndExplain(const Variant& value, @@ -4504,7 +4504,7 @@ template <typename Callable, typename InnerMatcher>  internal::ResultOfMatcher<Callable, InnerMatcher> ResultOf(      Callable callable, InnerMatcher matcher) {    return internal::ResultOfMatcher<Callable, InnerMatcher>( -      internal::move(callable), internal::move(matcher)); +      std::move(callable), std::move(matcher));  }  // String matchers. diff --git a/googlemock/include/gmock/gmock-spec-builders.h b/googlemock/include/gmock/gmock-spec-builders.h index b98e48b4..849bc92a 100644 --- a/googlemock/include/gmock/gmock-spec-builders.h +++ b/googlemock/include/gmock/gmock-spec-builders.h @@ -65,6 +65,7 @@  #include <set>  #include <sstream>  #include <string> +#include <utility>  #include <vector>  #include "gmock/gmock-actions.h"  #include "gmock/gmock-cardinalities.h" @@ -1320,13 +1321,13 @@ class ReferenceOrValueWrapper {   public:    // Constructs a wrapper from the given value/reference.    explicit ReferenceOrValueWrapper(T value) -      : value_(::testing::internal::move(value)) { +      : value_(std::move(value)) {    }    // Unwraps and returns the underlying value/reference, exactly as    // originally passed. The behavior of calling this more than once on    // the same object is unspecified. -  T Unwrap() { return ::testing::internal::move(value_); } +  T Unwrap() { return std::move(value_); }    // Provides nondestructive access to the underlying value/reference.    // Always returns a const reference (more precisely, @@ -1401,27 +1402,26 @@ class ActionResultHolder : public UntypedActionResultHolderBase {    template <typename F>    static ActionResultHolder* PerformDefaultAction(        const FunctionMockerBase<F>* func_mocker, -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args, +      typename Function<F>::ArgumentTuple&& args,        const std::string& call_description) {      return new ActionResultHolder(Wrapper(func_mocker->PerformDefaultAction( -        internal::move(args), call_description))); +        std::move(args), call_description)));    }    // Performs the given action and returns the result in a new-ed    // ActionResultHolder.    template <typename F>    static ActionResultHolder* PerformAction( -      const Action<F>& action, -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args) { +      const Action<F>& action, typename Function<F>::ArgumentTuple&& args) {      return new ActionResultHolder( -        Wrapper(action.Perform(internal::move(args)))); +        Wrapper(action.Perform(std::move(args))));    }   private:    typedef ReferenceOrValueWrapper<T> Wrapper;    explicit ActionResultHolder(Wrapper result) -      : result_(::testing::internal::move(result)) { +      : result_(std::move(result)) {    }    Wrapper result_; @@ -1442,9 +1442,9 @@ class ActionResultHolder<void> : public UntypedActionResultHolderBase {    template <typename F>    static ActionResultHolder* PerformDefaultAction(        const FunctionMockerBase<F>* func_mocker, -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args, +      typename Function<F>::ArgumentTuple&& args,        const std::string& call_description) { -    func_mocker->PerformDefaultAction(internal::move(args), call_description); +    func_mocker->PerformDefaultAction(std::move(args), call_description);      return new ActionResultHolder;    } @@ -1452,9 +1452,8 @@ class ActionResultHolder<void> : public UntypedActionResultHolderBase {    // ActionResultHolder*.    template <typename F>    static ActionResultHolder* PerformAction( -      const Action<F>& action, -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args) { -    action.Perform(internal::move(args)); +      const Action<F>& action, typename Function<F>::ArgumentTuple&& args) { +    action.Perform(std::move(args));      return new ActionResultHolder;    } @@ -1509,13 +1508,12 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {    // mutable state of this object, and thus can be called concurrently    // without locking.    // L = * -  Result PerformDefaultAction( -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args, -      const std::string& call_description) const { +  Result PerformDefaultAction(typename Function<F>::ArgumentTuple&& args, +                              const std::string& call_description) const {      const OnCallSpec<F>* const spec =          this->FindOnCallSpec(args);      if (spec != nullptr) { -      return spec->GetAction().Perform(internal::move(args)); +      return spec->GetAction().Perform(std::move(args));      }      const std::string message =          call_description + @@ -1540,7 +1538,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {        void* untyped_args,  // must point to an ArgumentTuple        const std::string& call_description) const {      ArgumentTuple* args = static_cast<ArgumentTuple*>(untyped_args); -    return ResultHolder::PerformDefaultAction(this, internal::move(*args), +    return ResultHolder::PerformDefaultAction(this, std::move(*args),                                                call_description);    } @@ -1554,7 +1552,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {      // action deletes the mock object (and thus deletes itself).      const Action<F> action = *static_cast<const Action<F>*>(untyped_action);      ArgumentTuple* args = static_cast<ArgumentTuple*>(untyped_args); -    return ResultHolder::PerformAction(action, internal::move(*args)); +    return ResultHolder::PerformAction(action, std::move(*args));    }    // Implements UntypedFunctionMockerBase::ClearDefaultActionsLocked(): @@ -1594,8 +1592,7 @@ class FunctionMockerBase : public UntypedFunctionMockerBase {    // Returns the result of invoking this mock function with the given    // arguments.  This function can be safely called from multiple    // threads concurrently. -  Result InvokeWith( -      typename RvalueRef<typename Function<F>::ArgumentTuple>::type args) +  Result InvokeWith(typename Function<F>::ArgumentTuple&& args)        GTEST_LOCK_EXCLUDED_(g_gmock_mutex) {      // const_cast is required since in C++98 we still pass ArgumentTuple around      // by const& instead of rvalue reference. diff --git a/googletest/include/gtest/gtest-param-test.h b/googletest/include/gtest/gtest-param-test.h index 093e6e63..8cc3dd74 100644 --- a/googletest/include/gtest/gtest-param-test.h +++ b/googletest/include/gtest/gtest-param-test.h @@ -336,859 +336,10 @@ internal::ParamGenerator<typename Container::value_type> ValuesIn(  //  // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));  // -// Currently, Values() supports from 1 to 50 parameters.  // -template <typename T1> -internal::ValueArray1<T1> Values(T1 v1) { -  return internal::ValueArray1<T1>(v1); -} - -template <typename T1, typename T2> -internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) { -  return internal::ValueArray2<T1, T2>(v1, v2); -} - -template <typename T1, typename T2, typename T3> -internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) { -  return internal::ValueArray3<T1, T2, T3>(v1, v2, v3); -} - -template <typename T1, typename T2, typename T3, typename T4> -internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) { -  return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5> -internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5) { -  return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6> -internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6) { -  return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7> -internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7) { -  return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5, -      v6, v7); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8> -internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) { -  return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4, -      v5, v6, v7, v8); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9> -internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) { -  return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10> -internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) { -  return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11> -internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, -    T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11) { -  return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, -      T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12> -internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -    T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12) { -  return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13> -internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, -    T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13) { -  return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14> -internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) { -  return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15> -internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) { -  return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16> -internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16) { -  return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17> -internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17) { -  return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18> -internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18) { -  return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19> -internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) { -  return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20> -internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) { -  return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21> -internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) { -  return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22> -internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22) { -  return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23> -internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23) { -  return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24> -internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24) { -  return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2, -      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, -      v19, v20, v21, v22, v23, v24); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25> -internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, -    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, -    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) { -  return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, -      v18, v19, v20, v21, v22, v23, v24, v25); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26> -internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -    T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26) { -  return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, -      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27> -internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, -    T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27) { -  return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, -      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28> -internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, -    T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28) { -  return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, -      v28); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29> -internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29) { -  return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, -      v27, v28, v29); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30> -internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) { -  return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, -      v26, v27, v28, v29, v30); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31> -internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) { -  return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, -      v25, v26, v27, v28, v29, v30, v31); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32> -internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32) { -  return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33> -internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33) { -  return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34> -internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, -    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, -    T31 v31, T32 v32, T33 v33, T34 v34) { -  return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, -      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35> -internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) { -  return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, -      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36> -internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) { -  return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37> -internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3, -    T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37) { -  return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3, -      v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36, v37); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38> -internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37, T38 v38) { -  return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2, -      v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, -      v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, -      v33, v34, v35, v36, v37, v38); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39> -internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2, -    T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, -    T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, -    T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, -    T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, -    T37 v37, T38 v38, T39 v39) { -  return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1, -      v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, -      v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, -      v32, v33, v34, v35, v36, v37, v38, v39); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40> -internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1, -    T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, -    T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, -    T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, -    T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, -    T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) { -  return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, -      v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, -      v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41> -internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, -    T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) { -  return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, -      v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, -      v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42> -internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, -    T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42) { -  return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, -      v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, -      v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, -      v42); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43> -internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, -    T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42, T43 v43) { -  return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, -      v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, -      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, -      v41, v42, v43); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44> -internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -    T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -    T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -    T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -    T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -    T42 v42, T43 v43, T44 v44) { -  return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, -      v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, -      v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, -      v40, v41, v42, v43, v44); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45> -internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -    T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -    T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -    T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, -    T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, -    T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) { -  return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, -      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, -      v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, -      v39, v40, v41, v42, v43, v44, v45); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46> -internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) { -  return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9, -      v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, -      v38, v39, v40, v41, v42, v43, v44, v45, v46); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47> -internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -    T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) { -  return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8, -      v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, -      v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, -      v38, v39, v40, v41, v42, v43, v44, v45, v46, v47); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48> -internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, -    T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, -    T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, -    T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, -    T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, -    T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, -    T48 v48) { -  return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7, -      v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, -      v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, -      v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49> -internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, -    T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, -    T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, -    T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, -    T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, -    T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, -    T47 v47, T48 v48, T49 v49) { -  return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6, -      v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, -      v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, -      v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49); -} - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49, typename T50> -internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, -    T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, -    T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, -    T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4, -    T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, -    T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, -    T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, -    T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, -    T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, -    T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) { -  return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, -      T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, -      T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, -      T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4, -      v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, -      v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, -      v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, -      v48, v49, v50); +template <typename... T> +internal::ValueArray<T...> Values(T... v) { +  return internal::ValueArray<T...>(std::move(v)...);  }  // Bool() allows generating tests with parameters in a set of (false, true). diff --git a/googletest/include/gtest/gtest-param-test.h.pump b/googletest/include/gtest/gtest-param-test.h.pump index 63c31c25..bb848ec3 100644 --- a/googletest/include/gtest/gtest-param-test.h.pump +++ b/googletest/include/gtest/gtest-param-test.h.pump @@ -335,19 +335,12 @@ internal::ParamGenerator<typename Container::value_type> ValuesIn(  //  // INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5));  // -// Currently, Values() supports from 1 to $n parameters.  // -$range i 1..n -$for i [[ -$range j 1..i - -template <$for j, [[typename T$j]]> -internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) { -  return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]); +template <typename... T> +internal::ValueArray<T...> Values(T... v) { +  return internal::ValueArray<T...>(std::move(v)...);  } -]] -  // Bool() allows generating tests with parameters in a set of (false, true).  //  // Synopsis: diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h b/googletest/include/gtest/internal/gtest-param-util-generated.h index d9d20c42..78bf65f6 100644 --- a/googletest/include/gtest/internal/gtest-param-util-generated.h +++ b/googletest/include/gtest/internal/gtest-param-util-generated.h @@ -52,3514 +52,7 @@  namespace testing { -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template <typename ForwardIterator> -internal::ParamGenerator< -  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end); - -template <typename T, size_t N> -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]); - -template <class Container> -internal::ParamGenerator<typename Container::value_type> ValuesIn( -    const Container& container); -  namespace internal { - -// Used in the Values() function to provide polymorphic capabilities. -template <typename T1> -class ValueArray1 { - public: -  explicit ValueArray1(T1 v1) : v1_(v1) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_)}; -    return ValuesIn(array); -  } - -  ValueArray1(const ValueArray1& other) : v1_(other.v1_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray1& other); - -  const T1 v1_; -}; - -template <typename T1, typename T2> -class ValueArray2 { - public: -  ValueArray2(T1 v1, T2 v2) : v1_(v1), v2_(v2) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_)}; -    return ValuesIn(array); -  } - -  ValueArray2(const ValueArray2& other) : v1_(other.v1_), v2_(other.v2_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray2& other); - -  const T1 v1_; -  const T2 v2_; -}; - -template <typename T1, typename T2, typename T3> -class ValueArray3 { - public: -  ValueArray3(T1 v1, T2 v2, T3 v3) : v1_(v1), v2_(v2), v3_(v3) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_)}; -    return ValuesIn(array); -  } - -  ValueArray3(const ValueArray3& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray3& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -}; - -template <typename T1, typename T2, typename T3, typename T4> -class ValueArray4 { - public: -  ValueArray4(T1 v1, T2 v2, T3 v3, T4 v4) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_)}; -    return ValuesIn(array); -  } - -  ValueArray4(const ValueArray4& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray4& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5> -class ValueArray5 { - public: -  ValueArray5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_)}; -    return ValuesIn(array); -  } - -  ValueArray5(const ValueArray5& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray5& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6> -class ValueArray6 { - public: -  ValueArray6(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_)}; -    return ValuesIn(array); -  } - -  ValueArray6(const ValueArray6& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray6& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7> -class ValueArray7 { - public: -  ValueArray7(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_)}; -    return ValuesIn(array); -  } - -  ValueArray7(const ValueArray7& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray7& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8> -class ValueArray8 { - public: -  ValueArray8(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, -      T8 v8) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_)}; -    return ValuesIn(array); -  } - -  ValueArray8(const ValueArray8& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray8& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9> -class ValueArray9 { - public: -  ValueArray9(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, -      T9 v9) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_)}; -    return ValuesIn(array); -  } - -  ValueArray9(const ValueArray9& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray9& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10> -class ValueArray10 { - public: -  ValueArray10(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_)}; -    return ValuesIn(array); -  } - -  ValueArray10(const ValueArray10& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray10& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11> -class ValueArray11 { - public: -  ValueArray11(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_)}; -    return ValuesIn(array); -  } - -  ValueArray11(const ValueArray11& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray11& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12> -class ValueArray12 { - public: -  ValueArray12(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_)}; -    return ValuesIn(array); -  } - -  ValueArray12(const ValueArray12& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray12& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13> -class ValueArray13 { - public: -  ValueArray13(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_)}; -    return ValuesIn(array); -  } - -  ValueArray13(const ValueArray13& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray13& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14> -class ValueArray14 { - public: -  ValueArray14(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_)}; -    return ValuesIn(array); -  } - -  ValueArray14(const ValueArray14& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray14& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15> -class ValueArray15 { - public: -  ValueArray15(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_)}; -    return ValuesIn(array); -  } - -  ValueArray15(const ValueArray15& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray15& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16> -class ValueArray16 { - public: -  ValueArray16(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_)}; -    return ValuesIn(array); -  } - -  ValueArray16(const ValueArray16& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray16& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17> -class ValueArray17 { - public: -  ValueArray17(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, -      T17 v17) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_)}; -    return ValuesIn(array); -  } - -  ValueArray17(const ValueArray17& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray17& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18> -class ValueArray18 { - public: -  ValueArray18(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_)}; -    return ValuesIn(array); -  } - -  ValueArray18(const ValueArray18& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray18& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19> -class ValueArray19 { - public: -  ValueArray19(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_)}; -    return ValuesIn(array); -  } - -  ValueArray19(const ValueArray19& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray19& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20> -class ValueArray20 { - public: -  ValueArray20(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_)}; -    return ValuesIn(array); -  } - -  ValueArray20(const ValueArray20& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray20& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21> -class ValueArray21 { - public: -  ValueArray21(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_)}; -    return ValuesIn(array); -  } - -  ValueArray21(const ValueArray21& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray21& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22> -class ValueArray22 { - public: -  ValueArray22(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_)}; -    return ValuesIn(array); -  } - -  ValueArray22(const ValueArray22& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray22& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23> -class ValueArray23 { - public: -  ValueArray23(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_)}; -    return ValuesIn(array); -  } - -  ValueArray23(const ValueArray23& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray23& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24> -class ValueArray24 { - public: -  ValueArray24(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_)}; -    return ValuesIn(array); -  } - -  ValueArray24(const ValueArray24& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray24& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25> -class ValueArray25 { - public: -  ValueArray25(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, -      T25 v25) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_)}; -    return ValuesIn(array); -  } - -  ValueArray25(const ValueArray25& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray25& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26> -class ValueArray26 { - public: -  ValueArray26(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_)}; -    return ValuesIn(array); -  } - -  ValueArray26(const ValueArray26& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray26& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27> -class ValueArray27 { - public: -  ValueArray27(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_)}; -    return ValuesIn(array); -  } - -  ValueArray27(const ValueArray27& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray27& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28> -class ValueArray28 { - public: -  ValueArray28(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_)}; -    return ValuesIn(array); -  } - -  ValueArray28(const ValueArray28& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray28& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29> -class ValueArray29 { - public: -  ValueArray29(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_)}; -    return ValuesIn(array); -  } - -  ValueArray29(const ValueArray29& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray29& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30> -class ValueArray30 { - public: -  ValueArray30(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_)}; -    return ValuesIn(array); -  } - -  ValueArray30(const ValueArray30& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray30& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31> -class ValueArray31 { - public: -  ValueArray31(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_)}; -    return ValuesIn(array); -  } - -  ValueArray31(const ValueArray31& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray31& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32> -class ValueArray32 { - public: -  ValueArray32(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_)}; -    return ValuesIn(array); -  } - -  ValueArray32(const ValueArray32& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray32& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33> -class ValueArray33 { - public: -  ValueArray33(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, -      T33 v33) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_)}; -    return ValuesIn(array); -  } - -  ValueArray33(const ValueArray33& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray33& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34> -class ValueArray34 { - public: -  ValueArray34(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_)}; -    return ValuesIn(array); -  } - -  ValueArray34(const ValueArray34& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray34& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35> -class ValueArray35 { - public: -  ValueArray35(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), -      v32_(v32), v33_(v33), v34_(v34), v35_(v35) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_)}; -    return ValuesIn(array); -  } - -  ValueArray35(const ValueArray35& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray35& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36> -class ValueArray36 { - public: -  ValueArray36(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), -      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_)}; -    return ValuesIn(array); -  } - -  ValueArray36(const ValueArray36& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray36& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37> -class ValueArray37 { - public: -  ValueArray37(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), -      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), -      v36_(v36), v37_(v37) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_)}; -    return ValuesIn(array); -  } - -  ValueArray37(const ValueArray37& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray37& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38> -class ValueArray38 { - public: -  ValueArray38(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_)}; -    return ValuesIn(array); -  } - -  ValueArray38(const ValueArray38& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray38& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39> -class ValueArray39 { - public: -  ValueArray39(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_)}; -    return ValuesIn(array); -  } - -  ValueArray39(const ValueArray39& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray39& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40> -class ValueArray40 { - public: -  ValueArray40(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), -      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), -      v40_(v40) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_)}; -    return ValuesIn(array); -  } - -  ValueArray40(const ValueArray40& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray40& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41> -class ValueArray41 { - public: -  ValueArray41(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, -      T41 v41) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_)}; -    return ValuesIn(array); -  } - -  ValueArray41(const ValueArray41& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray41& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42> -class ValueArray42 { - public: -  ValueArray42(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_)}; -    return ValuesIn(array); -  } - -  ValueArray42(const ValueArray42& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray42& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43> -class ValueArray43 { - public: -  ValueArray43(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), -      v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), -      v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), -      v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), -      v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), -      v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), -      v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_)}; -    return ValuesIn(array); -  } - -  ValueArray43(const ValueArray43& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray43& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44> -class ValueArray44 { - public: -  ValueArray44(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), -      v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), -      v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), v18_(v18), -      v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), v24_(v24), -      v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), v30_(v30), -      v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), v36_(v36), -      v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), v42_(v42), -      v43_(v43), v44_(v44) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_)}; -    return ValuesIn(array); -  } - -  ValueArray44(const ValueArray44& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray44& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45> -class ValueArray45 { - public: -  ValueArray45(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), -      v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), v11_(v11), -      v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), v17_(v17), -      v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), v23_(v23), -      v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), v29_(v29), -      v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), v35_(v35), -      v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), v41_(v41), -      v42_(v42), v43_(v43), v44_(v44), v45_(v45) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_)}; -    return ValuesIn(array); -  } - -  ValueArray45(const ValueArray45& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray45& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46> -class ValueArray46 { - public: -  ValueArray46(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) : v1_(v1), v2_(v2), v3_(v3), -      v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), -      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_)}; -    return ValuesIn(array); -  } - -  ValueArray46(const ValueArray46& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray46& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47> -class ValueArray47 { - public: -  ValueArray47(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) : v1_(v1), v2_(v2), -      v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), v10_(v10), -      v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), v16_(v16), -      v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), v22_(v22), -      v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), v28_(v28), -      v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), v34_(v34), -      v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), v40_(v40), -      v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), v46_(v46), -      v47_(v47) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_)}; -    return ValuesIn(array); -  } - -  ValueArray47(const ValueArray47& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray47& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48> -class ValueArray48 { - public: -  ValueArray48(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48) : v1_(v1), -      v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), v8_(v8), v9_(v9), -      v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), v15_(v15), -      v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), v21_(v21), -      v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), v27_(v27), -      v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), v33_(v33), -      v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), v39_(v39), -      v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), v45_(v45), -      v46_(v46), v47_(v47), v48_(v48) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_)}; -    return ValuesIn(array); -  } - -  ValueArray48(const ValueArray48& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray48& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49> -class ValueArray49 { - public: -  ValueArray49(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, -      T49 v49) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), -      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_), static_cast<T>(v49_)}; -    return ValuesIn(array); -  } - -  ValueArray49(const ValueArray49& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_), v49_(other.v49_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray49& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -  const T49 v49_; -}; - -template <typename T1, typename T2, typename T3, typename T4, typename T5, -    typename T6, typename T7, typename T8, typename T9, typename T10, -    typename T11, typename T12, typename T13, typename T14, typename T15, -    typename T16, typename T17, typename T18, typename T19, typename T20, -    typename T21, typename T22, typename T23, typename T24, typename T25, -    typename T26, typename T27, typename T28, typename T29, typename T30, -    typename T31, typename T32, typename T33, typename T34, typename T35, -    typename T36, typename T37, typename T38, typename T39, typename T40, -    typename T41, typename T42, typename T43, typename T44, typename T45, -    typename T46, typename T47, typename T48, typename T49, typename T50> -class ValueArray50 { - public: -  ValueArray50(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, -      T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, -      T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, -      T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, -      T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, -      T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, T48 v48, T49 v49, -      T50 v50) : v1_(v1), v2_(v2), v3_(v3), v4_(v4), v5_(v5), v6_(v6), v7_(v7), -      v8_(v8), v9_(v9), v10_(v10), v11_(v11), v12_(v12), v13_(v13), v14_(v14), -      v15_(v15), v16_(v16), v17_(v17), v18_(v18), v19_(v19), v20_(v20), -      v21_(v21), v22_(v22), v23_(v23), v24_(v24), v25_(v25), v26_(v26), -      v27_(v27), v28_(v28), v29_(v29), v30_(v30), v31_(v31), v32_(v32), -      v33_(v33), v34_(v34), v35_(v35), v36_(v36), v37_(v37), v38_(v38), -      v39_(v39), v40_(v40), v41_(v41), v42_(v42), v43_(v43), v44_(v44), -      v45_(v45), v46_(v46), v47_(v47), v48_(v48), v49_(v49), v50_(v50) {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {static_cast<T>(v1_), static_cast<T>(v2_), -        static_cast<T>(v3_), static_cast<T>(v4_), static_cast<T>(v5_), -        static_cast<T>(v6_), static_cast<T>(v7_), static_cast<T>(v8_), -        static_cast<T>(v9_), static_cast<T>(v10_), static_cast<T>(v11_), -        static_cast<T>(v12_), static_cast<T>(v13_), static_cast<T>(v14_), -        static_cast<T>(v15_), static_cast<T>(v16_), static_cast<T>(v17_), -        static_cast<T>(v18_), static_cast<T>(v19_), static_cast<T>(v20_), -        static_cast<T>(v21_), static_cast<T>(v22_), static_cast<T>(v23_), -        static_cast<T>(v24_), static_cast<T>(v25_), static_cast<T>(v26_), -        static_cast<T>(v27_), static_cast<T>(v28_), static_cast<T>(v29_), -        static_cast<T>(v30_), static_cast<T>(v31_), static_cast<T>(v32_), -        static_cast<T>(v33_), static_cast<T>(v34_), static_cast<T>(v35_), -        static_cast<T>(v36_), static_cast<T>(v37_), static_cast<T>(v38_), -        static_cast<T>(v39_), static_cast<T>(v40_), static_cast<T>(v41_), -        static_cast<T>(v42_), static_cast<T>(v43_), static_cast<T>(v44_), -        static_cast<T>(v45_), static_cast<T>(v46_), static_cast<T>(v47_), -        static_cast<T>(v48_), static_cast<T>(v49_), static_cast<T>(v50_)}; -    return ValuesIn(array); -  } - -  ValueArray50(const ValueArray50& other) : v1_(other.v1_), v2_(other.v2_), -      v3_(other.v3_), v4_(other.v4_), v5_(other.v5_), v6_(other.v6_), -      v7_(other.v7_), v8_(other.v8_), v9_(other.v9_), v10_(other.v10_), -      v11_(other.v11_), v12_(other.v12_), v13_(other.v13_), v14_(other.v14_), -      v15_(other.v15_), v16_(other.v16_), v17_(other.v17_), v18_(other.v18_), -      v19_(other.v19_), v20_(other.v20_), v21_(other.v21_), v22_(other.v22_), -      v23_(other.v23_), v24_(other.v24_), v25_(other.v25_), v26_(other.v26_), -      v27_(other.v27_), v28_(other.v28_), v29_(other.v29_), v30_(other.v30_), -      v31_(other.v31_), v32_(other.v32_), v33_(other.v33_), v34_(other.v34_), -      v35_(other.v35_), v36_(other.v36_), v37_(other.v37_), v38_(other.v38_), -      v39_(other.v39_), v40_(other.v40_), v41_(other.v41_), v42_(other.v42_), -      v43_(other.v43_), v44_(other.v44_), v45_(other.v45_), v46_(other.v46_), -      v47_(other.v47_), v48_(other.v48_), v49_(other.v49_), v50_(other.v50_) {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray50& other); - -  const T1 v1_; -  const T2 v2_; -  const T3 v3_; -  const T4 v4_; -  const T5 v5_; -  const T6 v6_; -  const T7 v7_; -  const T8 v8_; -  const T9 v9_; -  const T10 v10_; -  const T11 v11_; -  const T12 v12_; -  const T13 v13_; -  const T14 v14_; -  const T15 v15_; -  const T16 v16_; -  const T17 v17_; -  const T18 v18_; -  const T19 v19_; -  const T20 v20_; -  const T21 v21_; -  const T22 v22_; -  const T23 v23_; -  const T24 v24_; -  const T25 v25_; -  const T26 v26_; -  const T27 v27_; -  const T28 v28_; -  const T29 v29_; -  const T30 v30_; -  const T31 v31_; -  const T32 v32_; -  const T33 v33_; -  const T34 v34_; -  const T35 v35_; -  const T36 v36_; -  const T37 v37_; -  const T38 v38_; -  const T39 v39_; -  const T40 v40_; -  const T41 v41_; -  const T42 v42_; -  const T43 v43_; -  const T44 v44_; -  const T45 v45_; -  const T46 v46_; -  const T47 v47_; -  const T48 v48_; -  const T49 v49_; -  const T50 v50_; -}; -  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.  //  // Generates values from the Cartesian product of values produced diff --git a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump index 5f882608..67d1b34b 100644 --- a/googletest/include/gtest/internal/gtest-param-util-generated.h.pump +++ b/googletest/include/gtest/internal/gtest-param-util-generated.h.pump @@ -51,53 +51,7 @@ $var maxtuple = 10  $$ Maximum number of Combine arguments we want to support.  namespace testing { -// Forward declarations of ValuesIn(), which is implemented in -// include/gtest/gtest-param-test.h. -template <typename ForwardIterator> -internal::ParamGenerator< -  typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> -ValuesIn(ForwardIterator begin, ForwardIterator end); - -template <typename T, size_t N> -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]); - -template <class Container> -internal::ParamGenerator<typename Container::value_type> ValuesIn( -    const Container& container); -  namespace internal { - -// Used in the Values() function to provide polymorphic capabilities. -$range i 1..n -$for i [[ -$range j 1..i - -template <$for j, [[typename T$j]]> -class ValueArray$i { - public: -  $if i==1 [[explicit ]]ValueArray$i($for j, [[T$j v$j]]) : $for j, [[v$(j)_(v$j)]] {} - -  template <typename T> -  operator ParamGenerator<T>() const { -    const T array[] = {$for j, [[static_cast<T>(v$(j)_)]]}; -    return ValuesIn(array); -  } - -  ValueArray$i(const ValueArray$i& other) : $for j, [[v$(j)_(other.v$(j)_)]] {} - - private: -  // No implementation - assignment is unsupported. -  void operator=(const ValueArray$i& other); - -$for j [[ - -  const T$j v$(j)_; -]] - -}; - -]] -  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.  //  // Generates values from the Cartesian product of values produced diff --git a/googletest/include/gtest/internal/gtest-param-util.h b/googletest/include/gtest/internal/gtest-param-util.h index 3e810f20..2dea63cc 100644 --- a/googletest/include/gtest/internal/gtest-param-util.h +++ b/googletest/include/gtest/internal/gtest-param-util.h @@ -39,6 +39,7 @@  #include <iterator>  #include <set> +#include <tuple>  #include <utility>  #include <vector> @@ -48,7 +49,6 @@  #include "gtest/gtest-printers.h"  namespace testing { -  // Input to a parameterized test name generator, describing a test parameter.  // Consists of the parameter value and the integer parameter index.  template <class ParamType> @@ -72,7 +72,29 @@ struct PrintToStringParamName {  namespace internal {  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE. -// +// Utility Functions + +// Block of code creating for_each_in_tuple +template <int... Is> +struct sequence {}; + +template <int N, int... Is> +struct generate_sequence : generate_sequence<N - 1, N - 1, Is...> {}; + +template <int... Is> +struct generate_sequence<0, Is...> : sequence<Is...> {}; + +template <typename T, typename F, int... Is> +void ForEachInTupleImpl(T&& t, F f_gtest, sequence<Is...>) { +  int l[] = {(f_gtest(std::get<Is>(t)), 0)...}; +  (void)l;  // silence "unused variable warning" +} +template <typename... T, typename F> +void ForEachInTuple(const std::tuple<T...>& t, F f_gtest) { +  internal::ForEachInTupleImpl(t, f_gtest, +                               internal::generate_sequence<sizeof...(T)>()); +} +  // Outputs a message explaining invalid registration of different  // fixture class for the same test case. This may happen when  // TEST_P macro is used to define two tests with the same name @@ -715,6 +737,43 @@ class ParameterizedTestCaseRegistry {  };  }  // namespace internal + +// Forward declarations of ValuesIn(), which is implemented in +// include/gtest/gtest-param-test.h. +template <class Container> +internal::ParamGenerator<typename Container::value_type> ValuesIn( +    const Container& container); + +namespace internal { +// Used in the Values() function to provide polymorphic capabilities. + +template <typename T> +struct PushBack { +  template <typename U> +  void operator()(const U& u) { +    v_.push_back(static_cast<T>(u)); +  } +  std::vector<T>& v_; +}; + +template <typename... Ts> +class ValueArray { + public: +  ValueArray(Ts... v) : v_{std::move(v)...} {} + +  template <typename Tn> +  operator ParamGenerator<Tn>() const { +    std::vector<Tn> vc_accumulate; +    PushBack<Tn> fnc{vc_accumulate}; +    ForEachInTuple(v_, fnc); +    return ValuesIn(std::move(vc_accumulate)); +  } + + private: +  std::tuple<Ts...> v_; +}; + +}  // namespace internal  }  // namespace testing  #endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PARAM_UTIL_H_ diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h index 64bf67f0..36bd4052 100644 --- a/googletest/include/gtest/internal/gtest-port.h +++ b/googletest/include/gtest/internal/gtest-port.h @@ -203,11 +203,6 @@  //   GTEST_INTENTIONAL_CONST_COND_POP_  - finish code section where MSVC C4127  //                                        is suppressed.  // -// C++11 feature wrappers: -// -//   testing::internal::forward - portability wrapper for std::forward. -//   testing::internal::move  - portability wrapper for std::move. -//  // Synchronization:  //   Mutex, MutexLock, ThreadLocal, GetThreadCount()  //                            - synchronization primitives. @@ -1257,28 +1252,6 @@ struct ConstRef<T&> { typedef T& type; };  #define GTEST_REFERENCE_TO_CONST_(T) \    typename ::testing::internal::ConstRef<T>::type -#if GTEST_HAS_STD_MOVE_ -using std::forward; -using std::move; - -template <typename T> -struct RvalueRef { -  typedef T&& type; -}; -#else  // GTEST_HAS_STD_MOVE_ -template <typename T> -const T& move(const T& t) { -  return t; -} -template <typename T> -GTEST_ADD_REFERENCE_(T) forward(GTEST_ADD_REFERENCE_(T) t) { return t; } - -template <typename T> -struct RvalueRef { -  typedef const T& type; -}; -#endif  // GTEST_HAS_STD_MOVE_ -  // INTERNAL IMPLEMENTATION - DO NOT USE IN USER CODE.  //  // Use ImplicitCast_ as a safe version of static_cast for upcasting in diff --git a/googletest/include/gtest/internal/gtest-type-util.h.pump b/googletest/include/gtest/internal/gtest-type-util.h.pump index 0001a5d3..61c9d362 100644 --- a/googletest/include/gtest/internal/gtest-type-util.h.pump +++ b/googletest/include/gtest/internal/gtest-type-util.h.pump @@ -87,7 +87,7 @@ std::string GetTypeName() {  #   if GTEST_HAS_CXXABI_H_    using abi::__cxa_demangle;  #   endif  // GTEST_HAS_CXXABI_H_ -  char* const readable_name = __cxa_demangle(name, 0, 0, &status); +  char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status);    const std::string name_str(status == 0 ? readable_name : name);    free(readable_name);    return CanonicalizeForStdLibVersioning(name_str); diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc index 8ae25722..4a9c3817 100644 --- a/googletest/src/gtest.cc +++ b/googletest/src/gtest.cc @@ -5807,7 +5807,7 @@ static const char kColorEncodedHelpMessage[] =  "  @G--" GTEST_FLAG_PREFIX_ "output=@Y(@Gjson@Y|@Gxml@Y)[@G:@YDIRECTORY_PATH@G"      GTEST_PATH_SEP_ "@Y|@G:@YFILE_PATH]@D\n"  "      Generate a JSON or XML report in the given directory or with the given\n" -"      file name. @YFILE_PATH@D defaults to @Gtest_details.xml@D.\n" +"      file name. @YFILE_PATH@D defaults to @Gtest_detail.xml@D.\n"  # if GTEST_CAN_STREAM_RESULTS_  "  @G--" GTEST_FLAG_PREFIX_ "stream_result_to=@YHOST@G:@YPORT@D\n"  "      Stream test results to the given server.\n" diff --git a/googletest/test/googletest-param-test-test.cc b/googletest/test/googletest-param-test-test.cc index c78623a4..04b92ca9 100644 --- a/googletest/test/googletest-param-test-test.cc +++ b/googletest/test/googletest-param-test-test.cc @@ -1031,6 +1031,18 @@ TEST_F(ParameterizedDeathTest, GetParamDiesFromTestF) {  INSTANTIATE_TEST_CASE_P(RangeZeroToFive, ParameterizedDerivedTest, Range(0, 5)); +// Tests param generator working with Enums +enum MyEnums { +  ENUM1 = 1, +  ENUM2 = 3, +  ENUM3 = 8, +}; + +class MyEnumTest : public testing::TestWithParam<MyEnums> {}; + +TEST_P(MyEnumTest, ChecksParamMoreThanZero) { EXPECT_GE(10, GetParam()); } +INSTANTIATE_TEST_CASE_P(MyEnumTests, MyEnumTest, +                        ::testing::Values(ENUM1, ENUM2, 0));  int main(int argc, char **argv) {    // Used in TestGenerationTest test case. | 
