#include <iostream>
#include <vector>
template<class T>
class Obj {
private:
T a;
public:
Obj(T a_) : a(a_) {}
const T& getA() const { return a; }
};
int main() {
std::vector<Obj<int>> objs;
objs.push_back(Obj<int>(5));
objs.push_back(Obj<int>(10));
objs.push_back(Obj<int>(15));
objs.push_back(Obj<int>(20));
for(Obj<int> &obj : objs) {
std::cout << obj.getA() << "\n";
}
std::cout << std::flush;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGU8Y2xhc3MgVD4KY2xhc3MgT2JqIHsKcHJpdmF0ZToKCVQgYTsKcHVibGljOgoJT2JqKFQgYV8pIDogYShhXykge30KCQoJY29uc3QgVCYgZ2V0QSgpIGNvbnN0IHsgcmV0dXJuIGE7IH0KfTsKCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8T2JqPGludD4+IG9ianM7CgkKCW9ianMucHVzaF9iYWNrKE9iajxpbnQ+KDUpKTsKCW9ianMucHVzaF9iYWNrKE9iajxpbnQ+KDEwKSk7CglvYmpzLnB1c2hfYmFjayhPYmo8aW50PigxNSkpOwoJb2Jqcy5wdXNoX2JhY2soT2JqPGludD4oMjApKTsKCQoJZm9yKE9iajxpbnQ+ICZvYmogOiBvYmpzKSB7CgkJc3RkOjpjb3V0IDw8IG9iai5nZXRBKCkgPDwgIlxuIjsKCX0KCQoJc3RkOjpjb3V0IDw8IHN0ZDo6Zmx1c2g7CglyZXR1cm4gMDsKfQ==