On openSUSE Leap 15.6, with gcc 7.5.0, I ran into:
...
enumerate-selftests.c: In function 'void selftests::test_enumerate()':
enumerate-selftests.c:85:22: error: \
unused variable 'i' [-Werror=unused-variable]
for (auto [i, val] : gdb::ranges::views::enumerate (vec))
^
cc1plus: all warnings being treated as errors
...
Fix this by checking the value of i.
Tested on x86_64-linux.
{
std::vector<int> vec = { 1, 2, 3 };
std::vector<int> expected = { 10, 20, 30 };
+ std::vector<int> actual_i;
+ std::vector<int> expected_i = { 0, 1, 2 };
for (auto [i, val] : gdb::ranges::views::enumerate (vec))
- val *= 10;
+ {
+ val *= 10;
+ actual_i.push_back (i);
+ }
SELF_CHECK (vec == expected);
+ SELF_CHECK (actual_i == expected_i);
}
/* Test enumeration over an empty container. */