Concept
So I'm trying to define a macro to simplify the following code:
for (vector<TYPE>::iterator iter = iterable.begin(); iter != iterable.end(); iter++)
and
for (map<TYPE, TYPE>::iterator iter = iterable.begin(); iter != iterable.end(); iter++)
and etc.
Existing work
I still have
#define every(iter, iterable) ::iterator iter = iterable.begin(); iter != iterable.end(); iter++ for (vector<TYPE> every(iter, iterable))
but I would like to simplify this further.
purpose
Ideally, I would like to be able to do
for (every(iter, iterable))
which means that I need to somehow get the class<TYPE>
iterable object. Is it possible? If so, how can I do this?
CONDITIONS
- This, ideally, you need to go into a (relatively) large code base already configured to access the
iterator
object. - I am running pre-C ++ 11 compiler
Victory
#define every(iter, iterable) typeof(iterable.begin()) iter = iterable.begin(); iter != iterable.end(); iter++ for (every(iter, iterable))
Patrick perini
source share