Трябва да обработя std::vector
или напред, или назад, в зависимост от булев флаг. Кой е най-елегантният начин да постигнете това? Преди да се наложи да го направя наобратно, имах:
BOOST_FOREACH(const CType &foo, vec) {
...
}
Сега обаче имам ужасно изглеждащото:
for (int i=undoing ? (vec.size()-1) : 0; undoing ? (i >= 0) : (i < vec.size()); undoing ? (i--) : (i++)) {
const CType &foo = vec[i];
...
}
Има ли по-добър начин?