noexcept说明符
语法
noexcept
noexcept(表达式)
throw() //c++17被弃用,c++20移除
其中noexcept 和 noexcept(true)相同
void f()noexcept {
std::cout<< "hello world";
}
void f2()noexcept(true) {
std::cout<< "hello world";
}
int main() {
std::cout<< std::boolalpha<<noexcept(f()) << "\n"; //true
std::cout<< std::boolalpha<<noexcept(f2()) << "\n"; //true
noexcept运算符
语法
noexcept(表达式) 返回bool类型的纯右值
void f2();
void f()noexcept(noexcept(f2())) {
std::cout<< "hello world";
}
void f2() {
std::cout<< "hello world";
}
int main() {
std::cout<< std::boolalpha<<noexcept(f()) << "\n"; //false
std::cout<< std::boolalpha<<noexcept(f2()) << "\n"; //false
}
noexcept表达式是一种不求值表达式
int i = 1;
noexcept(++i);
std::cout<< i; //1
noexcept(std::cout<< "hello world"); //无输出