#include <iostream>
#include <vector>
#include <stdexcept>
template<class T>
struct svector : private ::std::vector<T>
{
typedef ::std::vector<T>
parent;
using parent::parent;
T& operator[](const size_t n)
{
return this->at(n);
}
const T& operator[](const size_t n)const
{
return this->at(n);
}
};
int main()
{
std::cout << "Hello, world!\n";
const int ar[]={1,2,3};
svector<int> example(ar, ar+3);
try{
example[10];
}
catch(const std::out_of_range& e)
{
std::cout<<"OUT OF RANGE: " << e.what()<<'\n';
}
catch(const std::exception& e)
{
std::cout<<e.what()<<'\n';
}
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0ZGV4Y2VwdD4KCnRlbXBsYXRlPGNsYXNzIFQ+CnN0cnVjdCBzdmVjdG9yIDogcHJpdmF0ZSA6OnN0ZDo6dmVjdG9yPFQ+CnsKICAgIHR5cGVkZWYgOjpzdGQ6OnZlY3RvcjxUPgogICAgICAgIHBhcmVudDsKIAogICAgdXNpbmcgcGFyZW50OjpwYXJlbnQ7CgogICAgVCYgb3BlcmF0b3JbXShjb25zdCBzaXplX3QgbikKICAgIHsKICAgICAgICByZXR1cm4gdGhpcy0+YXQobik7CiAgICB9CiAgICBjb25zdCBUJiBvcGVyYXRvcltdKGNvbnN0IHNpemVfdCBuKWNvbnN0CiAgICB7CiAgICAgICAgcmV0dXJuIHRoaXMtPmF0KG4pOwogICAgfQogICAKfTsKCmludCBtYWluKCkKewogICAgc3RkOjpjb3V0IDw8ICJIZWxsbywgd29ybGQhXG4iOwogICAgCiAgICBjb25zdCBpbnQgYXJbXT17MSwyLDN9OwogICAgc3ZlY3RvcjxpbnQ+IGV4YW1wbGUoYXIsIGFyKzMpOwogICAgCiAgICB0cnl7CiAgICAgICAgZXhhbXBsZVsxMF07CiAgICB9CiAgICBjYXRjaChjb25zdCBzdGQ6Om91dF9vZl9yYW5nZSYgZSkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQ8PCJPVVQgT0YgUkFOR0U6ICIgPDwgZS53aGF0KCk8PCdcbic7CiAgICB9CiAgICAKICAgIGNhdGNoKGNvbnN0IHN0ZDo6ZXhjZXB0aW9uJiBlKQogICAgewogICAgICAgIHN0ZDo6Y291dDw8ZS53aGF0KCk8PCdcbic7CiAgICB9CiAgICAKICAgIAp9