ein*_*ica 10 c++ noexcept c++11
我已经为某些C库实现了C++绑定.库API调用可能会失败,但显然不能抛出任何东西; 为了这个问题的目的,我的绑定都是内联的.
现在,对于我的大多数内联函数/方法,编译器可以弄清楚不能抛出异常; 例如,假设我有:
bool foo() {
auto result = wrapped_lib_foo();
return some_constexpr_nothrow_cond(result);
}
Run Code Online (Sandbox Code Playgroud)
我应该用这样的功能/方法标记noexcept吗?
笔记:
即使wrapped_lib_foo是一个extern "C"函数,编译器也无法知道堆栈中的某个地方wrapped_lib_foo永远不会抛出,除非你明确告诉它.
然后还有一个事实是,标记函数noexcept明确告知您的观众该函数不会抛出.
所以是的,这noexcept是一个好主意.