70 return os << (x.
value ?
"true" :
"false");
76 template <
typename T1>
92 template <
typename T1>
99 template <
typename T1>
107 <<
" is expected to be positive, but evaluates to "
113 template <
typename T1>
115 const T1& v1)
const {
134 "The predicate assertion didn't evaluate argument 2 "
139 FAIL() <<
"The predicate assertion unexpactedly aborted the test.";
141 FAIL() <<
"The failed predicate assertion didn't abort the test "
271 expected_to_finish_ =
false;
282 expected_to_finish_ =
false;
293 expected_to_finish_ =
false;
304 expected_to_finish_ =
false;
419 expected_to_finish_ =
false;
430 expected_to_finish_ =
false;
441 expected_to_finish_ =
false;
452 expected_to_finish_ =
false;
462 template <
typename T1,
typename T2>
478 template <
typename T1,
typename T2>
486 template <
typename T1,
typename T2>
496 <<
" is expected to be positive, but evaluates to "
502 template <
typename T1,
typename T2>
506 const T2& v2)
const {
525 "The predicate assertion didn't evaluate argument 2 "
528 "The predicate assertion didn't evaluate argument 3 "
533 FAIL() <<
"The predicate assertion unexpactedly aborted the test.";
535 FAIL() <<
"The failed predicate assertion didn't abort the test "
562 TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
571 TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeSuccess) {
580 TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
589 TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeSuccess) {
598 TEST_F(EXPECT_PRED2Test, FunctionOnBuiltInTypeFailure) {
609 TEST_F(EXPECT_PRED2Test, FunctionOnUserTypeFailure) {
620 TEST_F(EXPECT_PRED2Test, FunctorOnBuiltInTypeFailure) {
631 TEST_F(EXPECT_PRED2Test, FunctorOnUserTypeFailure) {
642 TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeSuccess) {
651 TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeSuccess) {
660 TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeSuccess) {
669 TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeSuccess) {
678 TEST_F(ASSERT_PRED2Test, FunctionOnBuiltInTypeFailure) {
679 expected_to_finish_ =
false;
690 TEST_F(ASSERT_PRED2Test, FunctionOnUserTypeFailure) {
691 expected_to_finish_ =
false;
702 TEST_F(ASSERT_PRED2Test, FunctorOnBuiltInTypeFailure) {
703 expected_to_finish_ =
false;
714 TEST_F(ASSERT_PRED2Test, FunctorOnUserTypeFailure) {
715 expected_to_finish_ =
false;
726 TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
735 TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
744 TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
753 TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
762 TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
773 TEST_F(EXPECT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
784 TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
795 TEST_F(EXPECT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
806 TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeSuccess) {
815 TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeSuccess) {
824 TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeSuccess) {
833 TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeSuccess) {
842 TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnBuiltInTypeFailure) {
843 expected_to_finish_ =
false;
854 TEST_F(ASSERT_PRED_FORMAT2Test, FunctionOnUserTypeFailure) {
855 expected_to_finish_ =
false;
866 TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnBuiltInTypeFailure) {
867 expected_to_finish_ =
false;
878 TEST_F(ASSERT_PRED_FORMAT2Test, FunctorOnUserTypeFailure) {
879 expected_to_finish_ =
false;
890 template <
typename T1,
typename T2,
typename T3>
892 return v1 + v2 + v3 > 0;
898 return v1 + v2 + v3 > 0;
901 return v1 + v2 + v3 > 0;
906 template <
typename T1,
typename T2,
typename T3>
910 return v1 + v2 + v3 > 0;
915 template <
typename T1,
typename T2,
typename T3>
926 << e1 <<
" + " << e2 <<
" + " << e3
927 <<
" is expected to be positive, but evaluates to "
928 << v1 + v2 + v3 <<
".";
933 template <
typename T1,
typename T2,
typename T3>
939 const T3& v3)
const {
958 "The predicate assertion didn't evaluate argument 2 "
961 "The predicate assertion didn't evaluate argument 3 "
964 "The predicate assertion didn't evaluate argument 4 "
969 FAIL() <<
"The predicate assertion unexpactedly aborted the test.";
971 FAIL() <<
"The failed predicate assertion didn't abort the test "
1000 TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
1010 TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeSuccess) {
1020 TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
1030 TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeSuccess) {
1040 TEST_F(EXPECT_PRED3Test, FunctionOnBuiltInTypeFailure) {
1052 TEST_F(EXPECT_PRED3Test, FunctionOnUserTypeFailure) {
1064 TEST_F(EXPECT_PRED3Test, FunctorOnBuiltInTypeFailure) {
1076 TEST_F(EXPECT_PRED3Test, FunctorOnUserTypeFailure) {
1088 TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeSuccess) {
1098 TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeSuccess) {
1108 TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeSuccess) {
1118 TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeSuccess) {
1128 TEST_F(ASSERT_PRED3Test, FunctionOnBuiltInTypeFailure) {
1129 expected_to_finish_ =
false;
1141 TEST_F(ASSERT_PRED3Test, FunctionOnUserTypeFailure) {
1142 expected_to_finish_ =
false;
1154 TEST_F(ASSERT_PRED3Test, FunctorOnBuiltInTypeFailure) {
1155 expected_to_finish_ =
false;
1167 TEST_F(ASSERT_PRED3Test, FunctorOnUserTypeFailure) {
1168 expected_to_finish_ =
false;
1180 TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
1190 TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
1200 TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
1210 TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
1220 TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
1232 TEST_F(EXPECT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
1244 TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
1256 TEST_F(EXPECT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
1268 TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeSuccess) {
1278 TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeSuccess) {
1288 TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeSuccess) {
1298 TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeSuccess) {
1308 TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnBuiltInTypeFailure) {
1309 expected_to_finish_ =
false;
1321 TEST_F(ASSERT_PRED_FORMAT3Test, FunctionOnUserTypeFailure) {
1322 expected_to_finish_ =
false;
1334 TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnBuiltInTypeFailure) {
1335 expected_to_finish_ =
false;
1347 TEST_F(ASSERT_PRED_FORMAT3Test, FunctorOnUserTypeFailure) {
1348 expected_to_finish_ =
false;
1360 template <
typename T1,
typename T2,
typename T3,
typename T4>
1362 return v1 + v2 + v3 + v4 > 0;
1368 return v1 + v2 + v3 + v4 > 0;
1371 return v1 + v2 + v3 + v4 > 0;
1376 template <
typename T1,
typename T2,
typename T3,
typename T4>
1381 return v1 + v2 + v3 + v4 > 0;
1386 template <
typename T1,
typename T2,
typename T3,
typename T4>
1399 << e1 <<
" + " << e2 <<
" + " << e3 <<
" + " << e4
1400 <<
" is expected to be positive, but evaluates to "
1401 << v1 + v2 + v3 + v4 <<
".";
1406 template <
typename T1,
typename T2,
typename T3,
typename T4>
1414 const T4& v4)
const {
1433 "The predicate assertion didn't evaluate argument 2 "
1436 "The predicate assertion didn't evaluate argument 3 "
1439 "The predicate assertion didn't evaluate argument 4 "
1442 "The predicate assertion didn't evaluate argument 5 "
1447 FAIL() <<
"The predicate assertion unexpactedly aborted the test.";
1449 FAIL() <<
"The failed predicate assertion didn't abort the test "
1480 TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
1491 TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeSuccess) {
1502 TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
1513 TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeSuccess) {
1524 TEST_F(EXPECT_PRED4Test, FunctionOnBuiltInTypeFailure) {
1537 TEST_F(EXPECT_PRED4Test, FunctionOnUserTypeFailure) {
1550 TEST_F(EXPECT_PRED4Test, FunctorOnBuiltInTypeFailure) {
1563 TEST_F(EXPECT_PRED4Test, FunctorOnUserTypeFailure) {
1576 TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeSuccess) {
1587 TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeSuccess) {
1598 TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeSuccess) {
1609 TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeSuccess) {
1620 TEST_F(ASSERT_PRED4Test, FunctionOnBuiltInTypeFailure) {
1621 expected_to_finish_ =
false;
1634 TEST_F(ASSERT_PRED4Test, FunctionOnUserTypeFailure) {
1635 expected_to_finish_ =
false;
1648 TEST_F(ASSERT_PRED4Test, FunctorOnBuiltInTypeFailure) {
1649 expected_to_finish_ =
false;
1662 TEST_F(ASSERT_PRED4Test, FunctorOnUserTypeFailure) {
1663 expected_to_finish_ =
false;
1676 TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
1687 TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
1698 TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
1709 TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
1720 TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
1733 TEST_F(EXPECT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
1746 TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
1759 TEST_F(EXPECT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
1772 TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeSuccess) {
1783 TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeSuccess) {
1794 TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeSuccess) {
1805 TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeSuccess) {
1816 TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnBuiltInTypeFailure) {
1817 expected_to_finish_ =
false;
1830 TEST_F(ASSERT_PRED_FORMAT4Test, FunctionOnUserTypeFailure) {
1831 expected_to_finish_ =
false;
1844 TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnBuiltInTypeFailure) {
1845 expected_to_finish_ =
false;
1858 TEST_F(ASSERT_PRED_FORMAT4Test, FunctorOnUserTypeFailure) {
1859 expected_to_finish_ =
false;
1872 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1874 return v1 + v2 + v3 + v4 + v5 > 0;
1880 return v1 + v2 + v3 + v4 + v5 > 0;
1883 return v1 + v2 + v3 + v4 + v5 > 0;
1888 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1894 return v1 + v2 + v3 + v4 + v5 > 0;
1899 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1914 << e1 <<
" + " << e2 <<
" + " << e3 <<
" + " << e4 <<
" + " << e5
1915 <<
" is expected to be positive, but evaluates to "
1916 << v1 + v2 + v3 + v4 + v5 <<
".";
1921 template <
typename T1,
typename T2,
typename T3,
typename T4,
typename T5>
1931 const T5& v5)
const {
1950 "The predicate assertion didn't evaluate argument 2 "
1953 "The predicate assertion didn't evaluate argument 3 "
1956 "The predicate assertion didn't evaluate argument 4 "
1959 "The predicate assertion didn't evaluate argument 5 "
1962 "The predicate assertion didn't evaluate argument 6 "
1967 FAIL() <<
"The predicate assertion unexpactedly aborted the test.";
1969 FAIL() <<
"The failed predicate assertion didn't abort the test "
2002 TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
2014 TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeSuccess) {
2026 TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
2038 TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeSuccess) {
2050 TEST_F(EXPECT_PRED5Test, FunctionOnBuiltInTypeFailure) {
2064 TEST_F(EXPECT_PRED5Test, FunctionOnUserTypeFailure) {
2078 TEST_F(EXPECT_PRED5Test, FunctorOnBuiltInTypeFailure) {
2092 TEST_F(EXPECT_PRED5Test, FunctorOnUserTypeFailure) {
2106 TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeSuccess) {
2118 TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeSuccess) {
2130 TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeSuccess) {
2142 TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeSuccess) {
2154 TEST_F(ASSERT_PRED5Test, FunctionOnBuiltInTypeFailure) {
2155 expected_to_finish_ =
false;
2169 TEST_F(ASSERT_PRED5Test, FunctionOnUserTypeFailure) {
2170 expected_to_finish_ =
false;
2184 TEST_F(ASSERT_PRED5Test, FunctorOnBuiltInTypeFailure) {
2185 expected_to_finish_ =
false;
2199 TEST_F(ASSERT_PRED5Test, FunctorOnUserTypeFailure) {
2200 expected_to_finish_ =
false;
2214 TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
2226 TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
2238 TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
2250 TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
2262 TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
2276 TEST_F(EXPECT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
2290 TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
2304 TEST_F(EXPECT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
2318 TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeSuccess) {
2330 TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeSuccess) {
2342 TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeSuccess) {
2354 TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeSuccess) {
2366 TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnBuiltInTypeFailure) {
2367 expected_to_finish_ =
false;
2381 TEST_F(ASSERT_PRED_FORMAT5Test, FunctionOnUserTypeFailure) {
2382 expected_to_finish_ =
false;
2396 TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnBuiltInTypeFailure) {
2397 expected_to_finish_ =
false;
2411 TEST_F(ASSERT_PRED_FORMAT5Test, FunctorOnUserTypeFailure) {
2412 expected_to_finish_ =
false;
bool operator()(const T1 &v1, const T2 &v2)
testing::AssertionResult PredFormatFunction3(const char *e1, const char *e2, const char *e3, const T1 &v1, const T2 &v2, const T3 &v3)
#define EXPECT_PRED3(pred, v1, v2, v3)
Predicate5Test EXPECT_PRED5Test
#define ASSERT_PRED5(pred, v1, v2, v3, v4, v5)
#define EXPECT_PRED_FORMAT2(pred_format, v1, v2)
bool PredFunction4Int(int v1, int v2, int v3, int v4)
AssertionResult AssertionFailure()
#define EXPECT_NONFATAL_FAILURE(statement, substr)
#define EXPECT_PRED_FORMAT3(pred_format, v1, v2, v3)
#define ASSERT_PRED3(pred, v1, v2, v3)
#define ASSERT_PRED_FORMAT3(pred_format, v1, v2, v3)
#define ASSERT_PRED1(pred, v1)
Predicate5Test ASSERT_PRED_FORMAT5Test
bool PredFunction1Bool(Bool v1)
internal::ParamGenerator< bool > Bool()
#define TEST_F(test_fixture, test_name)
bool operator>(int n) const
bool PredFunction2Int(int v1, int v2)
bool PredFunction5Bool(Bool v1, Bool v2, Bool v3, Bool v4, Bool v5)
bool PredFunction2(T1 v1, T2 v2)
#define ASSERT_PRED4(pred, v1, v2, v3, v4)
#define EXPECT_PRED5(pred, v1, v2, v3, v4, v5)
bool PredFunction3(T1 v1, T2 v2, T3 v3)
bool operator()(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5)
bool operator()(const T1 &v1)
#define EXPECT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5)
#define EXPECT_FATAL_FAILURE(statement, substr)
bool PredFunction2Bool(Bool v1, Bool v2)
Predicate1Test EXPECT_PRED_FORMAT1Test
std::ostream & operator<<(std::ostream &os, const Expr< T > &xx)
#define EXPECT_PRED1(pred, v1)
bool PredFunction4Bool(Bool v1, Bool v2, Bool v3, Bool v4)
Predicate5Test EXPECT_PRED_FORMAT5Test
static bool expected_to_finish_
#define ASSERT_PRED_FORMAT1(pred_format, v1)
Predicate5Test ASSERT_PRED5Test
Predicate3Test EXPECT_PRED_FORMAT3Test
Predicate2Test EXPECT_PRED2Test
AssertionResult AssertionSuccess()
Predicate2Test ASSERT_PRED2Test
bool PredFunction5(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5)
Predicate4Test ASSERT_PRED_FORMAT4Test
bool PredFunction3Int(int v1, int v2, int v3)
Predicate4Test EXPECT_PRED_FORMAT4Test
bool PredFunction4(T1 v1, T2 v2, T3 v3, T4 v4)
Predicate3Test ASSERT_PRED3Test
Predicate1Test ASSERT_PRED_FORMAT1Test
Predicate1Test EXPECT_PRED1Test
bool PredFunction1Int(int v1)
#define EXPECT_PRED4(pred, v1, v2, v3, v4)
Predicate1Test ASSERT_PRED1Test
static bool expected_to_finish_
Predicate2Test ASSERT_PRED_FORMAT2Test
testing::AssertionResult PredFormatFunction4(const char *e1, const char *e2, const char *e3, const char *e4, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4)
#define EXPECT_PRED_FORMAT1(pred_format, v1)
testing::AssertionResult PredFormatFunction1(const char *e1, const T1 &v1)
Predicate3Test EXPECT_PRED3Test
#define EXPECT_EQ(val1, val2)
testing::AssertionResult PredFormatFunction2(const char *e1, const char *e2, const T1 &v1, const T2 &v2)
Predicate2Test EXPECT_PRED_FORMAT2Test
#define ASSERT_PRED_FORMAT4(pred_format, v1, v2, v3, v4)
Predicate3Test ASSERT_PRED_FORMAT3Test
bool PredFunction5Int(int v1, int v2, int v3, int v4, int v5)
bool operator()(const T1 &v1, const T2 &v2, const T3 &v3)
Predicate4Test EXPECT_PRED4Test
static bool expected_to_finish_
#define ASSERT_PRED_FORMAT5(pred_format, v1, v2, v3, v4, v5)
bool PredFunction1(T1 v1)
#define ASSERT_PRED2(pred, v1, v2)
static bool expected_to_finish_
bool operator==(const Bool &rhs) const
static bool expected_to_finish_
Bool operator+(const Bool &rhs) const
#define EXPECT_PRED2(pred, v1, v2)
bool PredFunction3Bool(Bool v1, Bool v2, Bool v3)
bool operator()(const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4)
#define EXPECT_PRED_FORMAT4(pred_format, v1, v2, v3, v4)
Predicate4Test ASSERT_PRED4Test
#define ASSERT_PRED_FORMAT2(pred_format, v1, v2)
testing::AssertionResult PredFormatFunction5(const char *e1, const char *e2, const char *e3, const char *e4, const char *e5, const T1 &v1, const T2 &v2, const T3 &v3, const T4 &v4, const T5 &v5)