отлавливается выход за границы, а при [] пропускается?
#include <iostream>
#include <stdexcept>
#include <vector>
using namespace std;
int main ()
{
double buf = 0.8;
vector <double> my(5);
try
{
//my.at(10) = buf;
my[100] = buf;
}
catch (std::range_error& ba)//out_of_range& ba
{
cout << "Caught!" << endl;
}
cout << "End" << endl;
return 0;
}
потому что по стандарту так
Обсуждают сегодня