193fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev// This file was GENERATED by command: 293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev// pump.py gtest-tuple.h.pump 393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev// DO NOT EDIT BY HAND!!! 46d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 56d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Copyright 2009 Google Inc. 66d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// All Rights Reserved. 76d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 86d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Redistribution and use in source and binary forms, with or without 96d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// modification, are permitted provided that the following conditions are 106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// met: 116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// * Redistributions of source code must retain the above copyright 136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// notice, this list of conditions and the following disclaimer. 146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// * Redistributions in binary form must reproduce the above 156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// copyright notice, this list of conditions and the following disclaimer 166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// in the documentation and/or other materials provided with the 176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// distribution. 186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// * Neither the name of Google Inc. nor the names of its 196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// contributors may be used to endorse or promote products derived from 206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// this software without specific prior written permission. 216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Author: wan@google.com (Zhanyong Wan) 356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Implements a subset of TR1 tuple needed by Google Test and Google Mock. 376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 38c427f5e8ab231012d7663a0ee408f1225bac971azhanyong.wan#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 39c427f5e8ab231012d7663a0ee408f1225bac971azhanyong.wan#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#include <utility> // For ::std::pair. 426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 43535de5338c3a76bc75905694ac15731e3f0bfc8dzhanyong.wan// The compiler used in Symbian has a bug that prevents us from declaring the 44535de5338c3a76bc75905694ac15731e3f0bfc8dzhanyong.wan// tuple template as a friend (it complains that tuple is redefined). This 45535de5338c3a76bc75905694ac15731e3f0bfc8dzhanyong.wan// hack bypasses the bug by declaring the members that should otherwise be 46535de5338c3a76bc75905694ac15731e3f0bfc8dzhanyong.wan// private as public. 47673a0cb9079f8f37bd61588a3160e12daf70ec44vladlosev// Sun Studio versions < 12 also have the above bug. 48673a0cb9079f8f37bd61588a3160e12daf70ec44vladlosev#if defined(__SYMBIAN32__) || (defined(__SUNPRO_CC) && __SUNPRO_CC < 0x590) 49733a54a398766289b74cf3daebe083d7115cf388zhanyong.wan# define GTEST_DECLARE_TUPLE_AS_FRIEND_ public: 509644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#else 51733a54a398766289b74cf3daebe083d7115cf388zhanyong.wan# define GTEST_DECLARE_TUPLE_AS_FRIEND_ \ 529644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan template <GTEST_10_TYPENAMES_(U)> friend class tuple; \ 539644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan private: 549644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#endif 559644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 56357070773163979334f922aea127388de17c26fakosak@google.com// Visual Studio 2010, 2012, and 2013 define symbols in std::tr1 that conflict 57357070773163979334f922aea127388de17c26fakosak@google.com// with our own definitions. Therefore using our own tuple does not work on 58357070773163979334f922aea127388de17c26fakosak@google.com// those compilers. 59357070773163979334f922aea127388de17c26fakosak@google.com#if defined(_MSC_VER) && _MSC_VER >= 1600 /* 1600 is Visual Studio 2010 */ 60357070773163979334f922aea127388de17c26fakosak@google.com# error "gtest's tuple doesn't compile on Visual Studio 2010 or later. \ 61357070773163979334f922aea127388de17c26fakosak@google.comGTEST_USE_OWN_TR1_TUPLE must be set to 0 on those compilers." 62357070773163979334f922aea127388de17c26fakosak@google.com#endif 63357070773163979334f922aea127388de17c26fakosak@google.com 646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// GTEST_n_TUPLE_(T) is the type of an n-tuple. 656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_0_TUPLE_(T) tuple<> 669644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_1_TUPLE_(T) tuple<T##0, void, void, void, void, void, void, \ 679644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 689644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_2_TUPLE_(T) tuple<T##0, T##1, void, void, void, void, void, \ 699644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 709644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_3_TUPLE_(T) tuple<T##0, T##1, T##2, void, void, void, void, \ 719644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 729644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_4_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, void, void, void, \ 739644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 749644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_5_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, void, void, \ 759644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 769644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_6_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, void, \ 779644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 789644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_7_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 799644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan void, void, void> 809644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#define GTEST_8_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 819644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan T##7, void, void> 826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_9_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 839644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan T##7, T##8, void> 846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_10_TUPLE_(T) tuple<T##0, T##1, T##2, T##3, T##4, T##5, T##6, \ 856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T##7, T##8, T##9> 866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// GTEST_n_TYPENAMES_(T) declares a list of n typenames. 886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_0_TYPENAMES_(T) 896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_1_TYPENAMES_(T) typename T##0 906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_2_TYPENAMES_(T) typename T##0, typename T##1 916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_3_TYPENAMES_(T) typename T##0, typename T##1, typename T##2 926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_4_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3 946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_5_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4 966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_6_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4, typename T##5 986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_7_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4, typename T##5, typename T##6 1006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_8_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 1016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4, typename T##5, typename T##6, typename T##7 1026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_9_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 1036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4, typename T##5, typename T##6, \ 1046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##7, typename T##8 1056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_10_TYPENAMES_(T) typename T##0, typename T##1, typename T##2, \ 1066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##3, typename T##4, typename T##5, typename T##6, \ 1076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T##7, typename T##8, typename T##9 1086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// In theory, defining stuff in the ::std namespace is undefined 1106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// behavior. We can do this as we are playing the role of a standard 1116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// library vendor. 1126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wannamespace std { 1136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wannamespace tr1 { 1146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename T0 = void, typename T1 = void, typename T2 = void, 1166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T3 = void, typename T4 = void, typename T5 = void, 1176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T6 = void, typename T7 = void, typename T8 = void, 1186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typename T9 = void> 1196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass tuple; 1206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Anything in namespace gtest_internal is Google Test's INTERNAL 1226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// IMPLEMENTATION DETAIL and MUST NOT BE USED DIRECTLY in user code. 1236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wannamespace gtest_internal { 1246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// ByRef<T>::type is T if T is a reference; otherwise it's const T&. 1266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename T> 1276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct ByRef { typedef const T& type; }; // NOLINT 1286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename T> 1296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct ByRef<T&> { typedef T& type; }; // NOLINT 1306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// A handy wrapper for ByRef. 1326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_BY_REF_(T) typename ::std::tr1::gtest_internal::ByRef<T>::type 1336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// AddRef<T>::type is T if T is a reference; otherwise it's T&. This 1356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// is the same as tr1::add_reference<T>::type. 1366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename T> 1376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct AddRef { typedef T& type; }; // NOLINT 1386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename T> 1396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct AddRef<T&> { typedef T& type; }; // NOLINT 1406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// A handy wrapper for AddRef. 1426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_ADD_REF_(T) typename ::std::tr1::gtest_internal::AddRef<T>::type 1436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// A helper for implementing get<k>(). 1456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int k> class Get; 1466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// A helper for implementing tuple_element<k, T>. kIndexValid is true 1486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// iff k < the number of fields in tuple type T. 1496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <bool kIndexValid, int kIndex, class Tuple> 1506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct TupleElement; 1516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 15345577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 0, GTEST_10_TUPLE_(T) > { 15493fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T0 type; 15593fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 15845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 1, GTEST_10_TUPLE_(T) > { 15993fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T1 type; 16093fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 16345577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 2, GTEST_10_TUPLE_(T) > { 16493fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T2 type; 16593fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 16845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 3, GTEST_10_TUPLE_(T) > { 16993fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T3 type; 17093fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 17345577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 4, GTEST_10_TUPLE_(T) > { 17493fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T4 type; 17593fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 17845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 5, GTEST_10_TUPLE_(T) > { 17993fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T5 type; 18093fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 18345577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 6, GTEST_10_TUPLE_(T) > { 18493fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T6 type; 18593fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 18845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 7, GTEST_10_TUPLE_(T) > { 18993fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T7 type; 19093fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 19345577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 8, GTEST_10_TUPLE_(T) > { 19493fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T8 type; 19593fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 1966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 19845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct TupleElement<true, 9, GTEST_10_TUPLE_(T) > { 19993fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev typedef T9 type; 20093fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 2016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} // namespace gtest_internal 2036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 2056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass tuple<> { 2066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 2076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple() {} 2086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& /* t */) {} 2096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& /* t */) { return *this; } 2106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 2116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_1_TYPENAMES_(T)> 2136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_1_TUPLE_(T) { 2146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 2156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 2166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 217fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_() {} 2186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0) : f0_(f0) {} 2206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_) {} 2226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_1_TYPENAMES_(U)> 2246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_1_TUPLE_(U)& t) : f0_(t.f0_) {} 2256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 2276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_1_TYPENAMES_(U)> 2296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_1_TUPLE_(U)& t) { 2306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 2316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 2326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2339644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 2349644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 2356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_1_TYPENAMES_(U)> 2366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_1_TUPLE_(U)& t) { 2376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 2386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 2396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 2406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 2426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 2436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_2_TYPENAMES_(T)> 2456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_2_TUPLE_(T) { 2466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 2476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 2486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 249fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_() {} 2506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1) : f0_(f0), 2526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_(f1) {} 2536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_) {} 2556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_2_TYPENAMES_(U)> 2576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_2_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_) {} 2586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <typename U0, typename U1> 2596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const ::std::pair<U0, U1>& p) : f0_(p.first), f1_(p.second) {} 2606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 2626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_2_TYPENAMES_(U)> 2646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_2_TUPLE_(U)& t) { 2656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 2666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 2676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <typename U0, typename U1> 2686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const ::std::pair<U0, U1>& p) { 2696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = p.first; 2706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = p.second; 2716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 2726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 2736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2749644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 2759644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 2766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_2_TYPENAMES_(U)> 2776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_2_TUPLE_(U)& t) { 2786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 2796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 2806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 2816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 2826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 2846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 2856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 2866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_3_TYPENAMES_(T)> 2886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_3_TUPLE_(T) { 2896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 2906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 2916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 292fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_() {} 2936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 2956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2) : f0_(f0), f1_(f1), f2_(f2) {} 2966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {} 2986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 2996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_3_TYPENAMES_(U)> 3006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_3_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_) {} 3016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 3036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_3_TYPENAMES_(U)> 3056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_3_TUPLE_(U)& t) { 3066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 3076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 3086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3099644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 3109644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 3116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_3_TYPENAMES_(U)> 3126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_3_TUPLE_(U)& t) { 3136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 3146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 3156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 3166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 3176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 3186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 3206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 3216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 3226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 3236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_4_TYPENAMES_(T)> 3256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_4_TUPLE_(T) { 3266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 3276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 3286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 329fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_() {} 3306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 3326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3) : f0_(f0), f1_(f1), f2_(f2), 3336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(f3) {} 3346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_) {} 3366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_4_TYPENAMES_(U)> 3386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_4_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 3396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_) {} 3406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 3426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_4_TYPENAMES_(U)> 3446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_4_TUPLE_(U)& t) { 3456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 3466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 3476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3489644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 3499644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 3506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_4_TYPENAMES_(U)> 3516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_4_TUPLE_(U)& t) { 3526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 3536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 3546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 3556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 3566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 3576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 3586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 3606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 3616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 3626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 3636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 3646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_5_TYPENAMES_(T)> 3666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_5_TUPLE_(T) { 3676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 3686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 3696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 370fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_() {} 3716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 3736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, 3746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T4) f4) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4) {} 3756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 3776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_) {} 3786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_5_TYPENAMES_(U)> 3806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_5_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 3816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_) {} 3826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 3846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_5_TYPENAMES_(U)> 3866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_5_TUPLE_(U)& t) { 3876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 3886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 3896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 3909644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 3919644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 3926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_5_TYPENAMES_(U)> 3936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_5_TUPLE_(U)& t) { 3946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 3956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 3966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 3976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 3986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 3996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 4006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 4016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 4036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 4046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 4056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 4066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 4076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 4086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_6_TYPENAMES_(T)> 4106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_6_TUPLE_(T) { 4116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 4126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 4136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 414fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_() {} 4156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 4176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, 4186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T5) f5) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), 4196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_(f5) {} 4206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 4226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_), f5_(t.f5_) {} 4236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_6_TYPENAMES_(U)> 4256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_6_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 4266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_), f5_(t.f5_) {} 4276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 4296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_6_TYPENAMES_(U)> 4316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_6_TUPLE_(U)& t) { 4326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 4336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 4346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4359644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 4369644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 4376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_6_TYPENAMES_(U)> 4386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_6_TUPLE_(U)& t) { 4396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 4406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 4416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 4426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 4436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 4446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_ = t.f5_; 4456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 4466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 4476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 4496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 4506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 4516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 4526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 4536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T5 f5_; 4546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 4556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_7_TYPENAMES_(T)> 4576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_7_TUPLE_(T) { 4586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 4596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 4606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 461fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_() {} 4626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 4646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, 4656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6) : f0_(f0), f1_(f1), f2_(f2), 4666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(f3), f4_(f4), f5_(f5), f6_(f6) {} 4676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 4696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {} 4706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_7_TYPENAMES_(U)> 4726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_7_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 4736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_) {} 4746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 4766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_7_TYPENAMES_(U)> 4786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_7_TUPLE_(U)& t) { 4796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 4806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 4816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4829644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 4839644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 4846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_7_TYPENAMES_(U)> 4856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_7_TUPLE_(U)& t) { 4866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 4876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 4886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 4896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 4906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 4916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_ = t.f5_; 4926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f6_ = t.f6_; 4936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 4946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 4956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 4966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 4976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 4986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 4996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 5006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 5016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T5 f5_; 5026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T6 f6_; 5036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 5046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_8_TYPENAMES_(T)> 5066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_8_TUPLE_(T) { 5076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 5086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 5096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 510fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_() {} 5116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 5136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, 5146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, 5156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T7) f7) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), 5166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_(f5), f6_(f6), f7_(f7) {} 5176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 5196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {} 5206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_8_TYPENAMES_(U)> 5226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_8_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 5236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_) {} 5246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 5266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_8_TYPENAMES_(U)> 5286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_8_TUPLE_(U)& t) { 5296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 5306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 5316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5329644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 5339644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 5346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_8_TYPENAMES_(U)> 5356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_8_TUPLE_(U)& t) { 5366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 5376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 5386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 5396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 5406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 5416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_ = t.f5_; 5426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f6_ = t.f6_; 5436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f7_ = t.f7_; 5446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 5456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 5466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 5486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 5496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 5506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 5516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 5526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T5 f5_; 5536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T6 f6_; 5546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T7 f7_; 5556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 5566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_9_TYPENAMES_(T)> 5586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass GTEST_9_TUPLE_(T) { 5596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 5606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 5616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 562fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_() {} 5636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 5656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, 5666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7, 5676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T8) f8) : f0_(f0), f1_(f1), f2_(f2), f3_(f3), f4_(f4), 5686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_(f5), f6_(f6), f7_(f7), f8_(f8) {} 5696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 5716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {} 5726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_9_TYPENAMES_(U)> 5746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_9_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 5756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_) {} 5766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 5786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_9_TYPENAMES_(U)> 5806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_9_TUPLE_(U)& t) { 5816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 5826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 5836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 5849644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 5859644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 5866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_9_TYPENAMES_(U)> 5876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_9_TUPLE_(U)& t) { 5886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 5896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 5906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 5916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 5926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 5936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_ = t.f5_; 5946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f6_ = t.f6_; 5956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f7_ = t.f7_; 5966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f8_ = t.f8_; 5976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 5986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 5996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 6016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 6026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 6036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 6046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 6056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T5 f5_; 6066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T6 f6_; 6076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T7 f7_; 6086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T8 f8_; 6096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 6106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 6126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass tuple { 6136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 6146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <int k> friend class gtest_internal::Get; 6156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 616fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev tuple() : f0_(), f1_(), f2_(), f3_(), f4_(), f5_(), f6_(), f7_(), f8_(), 617fbd53a53c1e01dec71c65754cf73282e4759bc40vladlosev f9_() {} 6186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan explicit tuple(GTEST_BY_REF_(T0) f0, GTEST_BY_REF_(T1) f1, 6206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T2) f2, GTEST_BY_REF_(T3) f3, GTEST_BY_REF_(T4) f4, 6216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T5) f5, GTEST_BY_REF_(T6) f6, GTEST_BY_REF_(T7) f7, 6226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan GTEST_BY_REF_(T8) f8, GTEST_BY_REF_(T9) f9) : f0_(f0), f1_(f1), f2_(f2), 6236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(f3), f4_(f4), f5_(f5), f6_(f6), f7_(f7), f8_(f8), f9_(f9) {} 6246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const tuple& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), f3_(t.f3_), 6266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), f9_(t.f9_) {} 6276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_10_TYPENAMES_(U)> 6296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple(const GTEST_10_TUPLE_(U)& t) : f0_(t.f0_), f1_(t.f1_), f2_(t.f2_), 6306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_(t.f3_), f4_(t.f4_), f5_(t.f5_), f6_(t.f6_), f7_(t.f7_), f8_(t.f8_), 6316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f9_(t.f9_) {} 6326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const tuple& t) { return CopyFrom(t); } 6346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_10_TYPENAMES_(U)> 6366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& operator=(const GTEST_10_TUPLE_(U)& t) { 6376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return CopyFrom(t); 6386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 6396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6409644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan GTEST_DECLARE_TUPLE_AS_FRIEND_ 6419644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan 6426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <GTEST_10_TYPENAMES_(U)> 6436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan tuple& CopyFrom(const GTEST_10_TUPLE_(U)& t) { 6446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f0_ = t.f0_; 6456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f1_ = t.f1_; 6466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f2_ = t.f2_; 6476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f3_ = t.f3_; 6486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f4_ = t.f4_; 6496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f5_ = t.f5_; 6506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f6_ = t.f6_; 6516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f7_ = t.f7_; 6526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f8_ = t.f8_; 6536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan f9_ = t.f9_; 6546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return *this; 6556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 6566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T0 f0_; 6586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T1 f1_; 6596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T2 f2_; 6606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T3 f3_; 6616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T4 f4_; 6626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T5 f5_; 6636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T6 f6_; 6646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T7 f7_; 6656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T8 f8_; 6666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan T9 f9_; 6676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 6686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 6.1.3.2 Tuple creation functions. 6706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Known limitations: we don't support passing an 6726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// std::tr1::reference_wrapper<T> to make_tuple(). And we don't 6736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// implement tie(). 6746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline tuple<> make_tuple() { return tuple<>(); } 6766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_1_TYPENAMES_(T)> 6786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_1_TUPLE_(T) make_tuple(const T0& f0) { 6796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_1_TUPLE_(T)(f0); 6806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 6816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_2_TYPENAMES_(T)> 6836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_2_TUPLE_(T) make_tuple(const T0& f0, const T1& f1) { 6846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_2_TUPLE_(T)(f0, f1); 6856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 6866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_3_TYPENAMES_(T)> 6886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_3_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2) { 6896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_3_TUPLE_(T)(f0, f1, f2); 6906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 6916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_4_TYPENAMES_(T)> 6936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_4_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 6946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3) { 6956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_4_TUPLE_(T)(f0, f1, f2, f3); 6966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 6976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 6986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_5_TYPENAMES_(T)> 6996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_5_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4) { 7016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_5_TUPLE_(T)(f0, f1, f2, f3, f4); 7026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_6_TYPENAMES_(T)> 7056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_6_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4, const T5& f5) { 7076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_6_TUPLE_(T)(f0, f1, f2, f3, f4, f5); 7086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_7_TYPENAMES_(T)> 7116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_7_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4, const T5& f5, const T6& f6) { 7136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_7_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6); 7146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_8_TYPENAMES_(T)> 7176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_8_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7) { 7196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_8_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7); 7206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_9_TYPENAMES_(T)> 7236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_9_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7, 7256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T8& f8) { 7266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_9_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8); 7276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 7306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline GTEST_10_TUPLE_(T) make_tuple(const T0& f0, const T1& f1, const T2& f2, 7316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T3& f3, const T4& f4, const T5& f5, const T6& f6, const T7& f7, 7326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const T8& f8, const T9& f9) { 7336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return GTEST_10_TUPLE_(T)(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9); 7346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 7356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 6.1.3.3 Tuple helper classes. 7376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <typename Tuple> struct tuple_size; 7396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_0_TYPENAMES_(T)> 74145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_0_TUPLE_(T) > { 74293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 0; 74393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_1_TYPENAMES_(T)> 74645577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_1_TUPLE_(T) > { 74793fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 1; 74893fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_2_TYPENAMES_(T)> 75145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_2_TUPLE_(T) > { 75293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 2; 75393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_3_TYPENAMES_(T)> 75645577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_3_TUPLE_(T) > { 75793fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 3; 75893fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_4_TYPENAMES_(T)> 76145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_4_TUPLE_(T) > { 76293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 4; 76393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_5_TYPENAMES_(T)> 76645577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_5_TUPLE_(T) > { 76793fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 5; 76893fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_6_TYPENAMES_(T)> 77145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_6_TUPLE_(T) > { 77293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 6; 77393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_7_TYPENAMES_(T)> 77645577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_7_TUPLE_(T) > { 77793fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 7; 77893fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_8_TYPENAMES_(T)> 78145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_8_TUPLE_(T) > { 78293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 8; 78393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_9_TYPENAMES_(T)> 78645577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_9_TUPLE_(T) > { 78793fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 9; 78893fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T)> 79145577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosevstruct tuple_size<GTEST_10_TUPLE_(T) > { 79293fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev static const int value = 10; 79393fed47dbf8e6bc3d39d3f769cb5039551747257vladlosev}; 7946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 7956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int k, class Tuple> 7966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct tuple_element { 7976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan typedef typename gtest_internal::TupleElement< 7986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan k < (tuple_size<Tuple>::value), k, Tuple>::type type; 7996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#define GTEST_TUPLE_ELEMENT_(k, Tuple) typename tuple_element<k, Tuple >::type 8026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 6.1.3.4 Element access. 8046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wannamespace gtest_internal { 8066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<0> { 8096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) 8126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f0_; } // NOLINT 8136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(0, Tuple)) 8166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f0_; } 8176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<1> { 8216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) 8246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f1_; } // NOLINT 8256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(1, Tuple)) 8286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f1_; } 8296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<2> { 8336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) 8366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f2_; } // NOLINT 8376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(2, Tuple)) 8406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f2_; } 8416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<3> { 8456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) 8486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f3_; } // NOLINT 8496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(3, Tuple)) 8526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f3_; } 8536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<4> { 8576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) 8606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f4_; } // NOLINT 8616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(4, Tuple)) 8646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f4_; } 8656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<5> { 8696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) 8726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f5_; } // NOLINT 8736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(5, Tuple)) 8766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f5_; } 8776d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8786d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<6> { 8816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) 8846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f6_; } // NOLINT 8856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(6, Tuple)) 8886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f6_; } 8896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 8906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 8926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<7> { 8936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 8946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) 8966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f7_; } // NOLINT 8976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 8986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 8996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(7, Tuple)) 9006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f7_; } 9016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 9026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 9046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<8> { 9056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 9066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 9076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) 9086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f8_; } // NOLINT 9096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 9116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(8, Tuple)) 9126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f8_; } 9136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 9146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9156d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 9166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanclass Get<9> { 9176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan public: 9186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 9196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) 9206d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan Field(Tuple& t) { return t.f9_; } // NOLINT 9216d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9226d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple> 9236d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static GTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(9, Tuple)) 9246d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ConstField(const Tuple& t) { return t.f9_; } 9256d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 9266d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9276d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} // namespace gtest_internal 9286d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9296d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int k, GTEST_10_TYPENAMES_(T)> 9306d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanGTEST_ADD_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) 9316d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanget(GTEST_10_TUPLE_(T)& t) { 9326d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return gtest_internal::Get<k>::Field(t); 9336d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 9346d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9356d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int k, GTEST_10_TYPENAMES_(T)> 9366d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanGTEST_BY_REF_(GTEST_TUPLE_ELEMENT_(k, GTEST_10_TUPLE_(T))) 9376d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanget(const GTEST_10_TUPLE_(T)& t) { 9386d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return gtest_internal::Get<k>::ConstField(t); 9396d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 9406d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9416d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 6.1.3.5 Relational operators 9426d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9436d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// We only implement == and !=, as we don't have a need for the rest yet. 9446d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9456d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wannamespace gtest_internal { 9466d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9476d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// SameSizeTuplePrefixComparator<k, k>::Eq(t1, t2) returns true if the 9486d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// first k fields of t1 equals the first k fields of t2. 9496d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// SameSizeTuplePrefixComparator(k1, k2) would be a compiler error if 9506d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// k1 != k2. 9516d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int kSize1, int kSize2> 9526d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct SameSizeTuplePrefixComparator; 9536d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9546d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <> 9556d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct SameSizeTuplePrefixComparator<0, 0> { 9566d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple1, class Tuple2> 9576d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static bool Eq(const Tuple1& /* t1 */, const Tuple2& /* t2 */) { 9586d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return true; 9596d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 9606d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 9616d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9626d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <int k> 9636d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wanstruct SameSizeTuplePrefixComparator<k, k> { 9646d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan template <class Tuple1, class Tuple2> 9656d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan static bool Eq(const Tuple1& t1, const Tuple2& t2) { 9666d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return SameSizeTuplePrefixComparator<k - 1, k - 1>::Eq(t1, t2) && 9676d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan ::std::tr1::get<k - 1>(t1) == ::std::tr1::get<k - 1>(t2); 9686d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan } 9696d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan}; 9706d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9716d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} // namespace gtest_internal 9726d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9736d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> 9746d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline bool operator==(const GTEST_10_TUPLE_(T)& t, 9756d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const GTEST_10_TUPLE_(U)& u) { 9766d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan return gtest_internal::SameSizeTuplePrefixComparator< 97745577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosev tuple_size<GTEST_10_TUPLE_(T) >::value, 97845577eac2c9317f5a8adfe7a9d37f62f45832b96vladlosev tuple_size<GTEST_10_TUPLE_(U) >::value>::Eq(t, u); 9796d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} 9806d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9816d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wantemplate <GTEST_10_TYPENAMES_(T), GTEST_10_TYPENAMES_(U)> 9826d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.waninline bool operator!=(const GTEST_10_TUPLE_(T)& t, 9836d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan const GTEST_10_TUPLE_(U)& u) { return !(t == u); } 9846d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9856d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// 6.1.4 Pairs. 9866d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan// Unimplemented. 9876d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9886d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} // namespace tr1 9896d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan} // namespace std 9906d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 9916d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_0_TUPLE_ 9926d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_1_TUPLE_ 9936d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_2_TUPLE_ 9946d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_3_TUPLE_ 9956d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_4_TUPLE_ 9966d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_5_TUPLE_ 9976d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_6_TUPLE_ 9986d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_7_TUPLE_ 9996d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_8_TUPLE_ 10006d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_9_TUPLE_ 10016d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_10_TUPLE_ 10026d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 10036d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_0_TYPENAMES_ 10046d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_1_TYPENAMES_ 10056d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_2_TYPENAMES_ 10066d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_3_TYPENAMES_ 10076d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_4_TYPENAMES_ 10086d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_5_TYPENAMES_ 10096d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_6_TYPENAMES_ 10106d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_7_TYPENAMES_ 10116d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_8_TYPENAMES_ 10126d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_9_TYPENAMES_ 10136d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_10_TYPENAMES_ 10146d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 10159644db857432db95bc64f5d6db5867b1c7cf1679zhanyong.wan#undef GTEST_DECLARE_TUPLE_AS_FRIEND_ 10166d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_BY_REF_ 10176d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_ADD_REF_ 10186d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan#undef GTEST_TUPLE_ELEMENT_ 10196d63ee6720540cadb8919037c5d41a6413cc9101zhanyong.wan 1020c427f5e8ab231012d7663a0ee408f1225bac971azhanyong.wan#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_TUPLE_H_ 1021