C++11 обратный range-based for-loop

Есть ли адаптер контейнера, который бы изменил направление итераторов, чтобы я мог итерировать контейнер в обратном направлении с помощью range-based for-loop?

С явными итераторами я бы преобразовал это:

for (auto i = c.begin(); i != c.end(); ++i) { ...

в это:

for (auto i = c.rbegin(); i != c.rend(); ++i) { ...

Я хочу преобразовать это:

for (auto& i: c) { ...

в это:

for (auto& i: std::magic_reverse_adapter(c)) { ...

Есть ли такая вещь или я должен написать ее сам?

308
задан einpoklum - reinstate Monica 29 August 2019 в 10:51
поделиться