Концепция
Итак, я пытаюсь определить макрос для упрощения следующего кода:
for (vector<TYPE>::iterator iter = iterable.begin();
iter != iterable.end(); iter++)
и
for (map<TYPE, TYPE>::iterator iter = iterable.begin();
iter != iterable.end(); iter++)
и т. Д.
Существующая работа
Пока у меня есть
#define every(iter, iterable) ::iterator iter = iterable.begin(); iter != iterable.end(); iter++
for (vector<TYPE> every(iter, iterable))
, но я бы хотел еще больше упростить это.
Цель
В идеале я бы хотел иметь возможность
for (every(iter, iterable))
, что означает, что мне нужно каким-то образом получить class<TYPE>
повторяемого объекта.Это возможно?Если да, то как я могу это сделать?
Stipulations
- В идеале это должно включать (относительно) большую кодовую базу, уже настроенную для доступа к объекту
iterator
. - Я работаю на компиляторе предварительно - C ++ 11
Victory
#define every(iter, iterable) typeof(iterable.begin()) iter = iterable.begin(); iter != iterable.end(); iter++
for (every(iter, iterable))