I am not sure what silly mistake I am making but I am expecting an out-of-range
error in the following code but it just prints values of 0.
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = { 1, 2, 3, 4, 5 };
try
{
for (int i = 0; i <= v.size() + 1; ++i)
{
std::cout << "v[" << i << "] = " << v[i] << std::endl;
}
}
catch (std::out_of_range)
{
std::cerr << "Oops! Range Error!" << '\n';
return 1;
}
catch (...)
{
std::cerr << "Exception: something went wrong!" << '\n';
return 2;
}
}
Compiler is apple clang and c++ standard is c++14.
This is the output. It seems like I am missing something very trivial.
v[0] = 1
v[1] = 2
v[2] = 3
v[3] = 4
v[4] = 5
v[5] = 0
v[6] = 0