#include <iostream>
#include <vector>
using namespace std;
template<typename T>
void foo(T& t)
{
typename T::iterator it = t.begin();
// ...
}
template<typename T>
void foo(const T& t)
{
typename T::const_iterator it = t.begin();
// ...
}
int main() {
vector<int> ints;
foo(ints);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmb28oVCYgdCkKewoJdHlwZW5hbWUgVDo6aXRlcmF0b3IgaXQgPSB0LmJlZ2luKCk7CgkvLyAuLi4KfQoKdGVtcGxhdGU8dHlwZW5hbWUgVD4Kdm9pZCBmb28oY29uc3QgVCYgdCkKewoJdHlwZW5hbWUgVDo6Y29uc3RfaXRlcmF0b3IgaXQgPSB0LmJlZ2luKCk7CgkvLyAuLi4KfQoKaW50IG1haW4oKSB7Cgl2ZWN0b3I8aW50PiBpbnRzOwoJZm9vKGludHMpOwoJcmV0dXJuIDA7Cn0=