Я не могу понять использование и назначение noexcept
в ключевом слове в С++ 11/14. Я имею в виду, что это подпись для тех функций, которые не испускают exceptions
. Но действительно ли это работает?
Посмотрите на этот код ниже:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
void seev (vector<int> &v) noexcept;
void seev (vector<int> &v) noexcept
{
for (int i=0;i<10;++i)
{
cout<<v.at(i)<<' ';
}
}
int main()
{
vector<int> v {1,2,3,4,5};
seev(v);
return 0;
}
Вышеприведенный код, несомненно, вызовет out_of_range exception
. Таким образом, использование noexcept
здесь бесполезно, или оно?
Мои запросы:
-
Как работает
noexcept
? -
Как он используется?
-
Что
throw()
не удалось сделать, чтобыnoexcept
мог?