Pau*_*nta 2 c++ syntax coding-style exception
如何在代码中指出C++函数可以抛出什么东西?我不是指通过文档,而是通过语法.
例如,我尝试throw(std::exception)在函数声明的末尾放置一个,但是这给了我一个警告说"C++异常规范被忽略,除了表示函数不是__declspec(nothrow)",我猜这意味着编译器忽略了throw并继续好像它不在那里.
我也尝试throw()在声明的末尾添加一个(在括号中没有任何内容),但是 - 与我的期望相反 - 这意味着该函数应该永远不会抛出任何东西:"函数假定不抛出异常而是".
我正在使用throw(...)语法表示函数可能会抛出,因为这不会给我任何错误或警告.关于如何通过语法表明这一点,您有任何其他建议吗?
你没有.异常说明符并不意味着"这是我可以抛出的东西",它们的意思是"如果除此之外的任何东西被抛出,请转到std::terminate".这种行为违反了MSVC++不支持它们并且不支持它们的观点.
C++的语义是你必须假设一个函数总能抛出.
| 归档时间: |
|
| 查看次数: |
6368 次 |
| 最近记录: |