@@ -43,26 +43,28 @@ TEST(STLExtrasTest, EnumerateLValue) {
43
43
// Test that a simple LValue can be enumerated and gives correct results with
44
44
// multiple types, including the empty container.
45
45
std::vector<char > foo = {' a' , ' b' , ' c' };
46
- std::vector<std::pair<std::size_t , char >> CharResults;
46
+ typedef std::pair<std::size_t , char > CharPairType;
47
+ std::vector<CharPairType> CharResults;
47
48
48
49
for (auto X : llvm::enumerate (foo)) {
49
50
CharResults.emplace_back (X.Index , X.Value );
50
51
}
51
52
ASSERT_EQ (3u , CharResults.size ());
52
- EXPECT_EQ (std::make_pair (0u , ' a' ), CharResults[0 ]);
53
- EXPECT_EQ (std::make_pair (1u , ' b' ), CharResults[1 ]);
54
- EXPECT_EQ (std::make_pair (2u , ' c' ), CharResults[2 ]);
53
+ EXPECT_EQ (CharPairType (0u , ' a' ), CharResults[0 ]);
54
+ EXPECT_EQ (CharPairType (1u , ' b' ), CharResults[1 ]);
55
+ EXPECT_EQ (CharPairType (2u , ' c' ), CharResults[2 ]);
55
56
56
57
// Test a const range of a different type.
57
- std::vector<std::pair<std::size_t , int >> IntResults;
58
+ typedef std::pair<std::size_t , int > IntPairType;
59
+ std::vector<IntPairType> IntResults;
58
60
const std::vector<int > bar = {1 , 2 , 3 };
59
61
for (auto X : llvm::enumerate (bar)) {
60
62
IntResults.emplace_back (X.Index , X.Value );
61
63
}
62
64
ASSERT_EQ (3u , IntResults.size ());
63
- EXPECT_EQ (std::make_pair (0u , 1 ), IntResults[0 ]);
64
- EXPECT_EQ (std::make_pair (1u , 2 ), IntResults[1 ]);
65
- EXPECT_EQ (std::make_pair (2u , 3 ), IntResults[2 ]);
65
+ EXPECT_EQ (IntPairType (0u , 1 ), IntResults[0 ]);
66
+ EXPECT_EQ (IntPairType (1u , 2 ), IntResults[1 ]);
67
+ EXPECT_EQ (IntPairType (2u , 3 ), IntResults[2 ]);
66
68
67
69
// Test an empty range.
68
70
IntResults.clear ();
@@ -88,7 +90,8 @@ TEST(STLExtrasTest, EnumerateModifyLValue) {
88
90
89
91
TEST (STLExtrasTest, EnumerateRValueRef) {
90
92
// Test that an rvalue can be enumerated.
91
- std::vector<std::pair<std::size_t , int >> Results;
93
+ typedef std::pair<std::size_t , int > PairType;
94
+ std::vector<PairType> Results;
92
95
93
96
auto Enumerator = llvm::enumerate (std::vector<int >{1 , 2 , 3 });
94
97
@@ -97,26 +100,27 @@ TEST(STLExtrasTest, EnumerateRValueRef) {
97
100
}
98
101
99
102
ASSERT_EQ (3u , Results.size ());
100
- EXPECT_EQ (std::make_pair (0u , 1 ), Results[0 ]);
101
- EXPECT_EQ (std::make_pair (1u , 2 ), Results[1 ]);
102
- EXPECT_EQ (std::make_pair (2u , 3 ), Results[2 ]);
103
+ EXPECT_EQ (PairType (0u , 1 ), Results[0 ]);
104
+ EXPECT_EQ (PairType (1u , 2 ), Results[1 ]);
105
+ EXPECT_EQ (PairType (2u , 3 ), Results[2 ]);
103
106
}
104
107
105
108
TEST (STLExtrasTest, EnumerateModifyRValue) {
106
109
// Test that when enumerating an rvalue, modification still works (even if
107
110
// this isn't terribly useful, it at least shows that we haven't snuck an
108
111
// extra const in there somewhere.
109
- std::vector<std::pair<std::size_t , char >> Results;
112
+ typedef std::pair<std::size_t , char > PairType;
113
+ std::vector<PairType> Results;
110
114
111
115
for (auto X : llvm::enumerate (std::vector<char >{' 1' , ' 2' , ' 3' })) {
112
116
++X.Value ;
113
117
Results.emplace_back (X.Index , X.Value );
114
118
}
115
119
116
120
ASSERT_EQ (3u , Results.size ());
117
- EXPECT_EQ (std::make_pair (0u , ' 2' ), Results[0 ]);
118
- EXPECT_EQ (std::make_pair (1u , ' 3' ), Results[1 ]);
119
- EXPECT_EQ (std::make_pair (2u , ' 4' ), Results[2 ]);
121
+ EXPECT_EQ (PairType (0u , ' 2' ), Results[0 ]);
122
+ EXPECT_EQ (PairType (1u , ' 3' ), Results[1 ]);
123
+ EXPECT_EQ (PairType (2u , ' 4' ), Results[2 ]);
120
124
}
121
125
122
126
template <bool B> struct CanMove {};
0 commit comments