#include <iostream>
#include <vector>
template<class T>
struct MyVector
{
typedef std::vector<T> Type;
};
template<class T>
void func( const typename MyVector<T>::Type& myVec )
{
for( typename MyVector<T>::Type::const_iterator p = myVec.begin(); p != myVec.end(); p++)
{
std::cout<<*p<<"\t";
}
}
int main()
{
MyVector<int>::Type myVec;
myVec.push_back( 10 );
myVec.push_back( 20 );
func<int>( myVec );
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGU8Y2xhc3MgVD4Kc3RydWN0IE15VmVjdG9yCnsKICAgIHR5cGVkZWYgc3RkOjp2ZWN0b3I8VD4gVHlwZTsKfTsKCnRlbXBsYXRlPGNsYXNzIFQ+CnZvaWQgZnVuYyggY29uc3QgdHlwZW5hbWUgTXlWZWN0b3I8VD46OlR5cGUmIG15VmVjICkKewogICAgZm9yKCB0eXBlbmFtZSBNeVZlY3RvcjxUPjo6VHlwZTo6Y29uc3RfaXRlcmF0b3IgcCA9IG15VmVjLmJlZ2luKCk7IHAgIT0gbXlWZWMuZW5kKCk7IHArKykKICAgIHsKICAgICAgICBzdGQ6OmNvdXQ8PCpwPDwiXHQiOwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIE15VmVjdG9yPGludD46OlR5cGUgbXlWZWM7CiAgICBteVZlYy5wdXNoX2JhY2soIDEwICk7CiAgICBteVZlYy5wdXNoX2JhY2soIDIwICk7CgogICAgZnVuYzxpbnQ+KCBteVZlYyApOwp9