【发布时间】:2023-03-05 22:40:01
【问题描述】:
当我声明 condition_variable 时,它可能会抛出 std::system_error。
但是当我声明一个 POD 类型(例如 int、double 或 float)时呢?
喜欢下面的代码:
int main()
{
//do something
int i; //will here throw exception?
}
如果声明一个POD类型可能会抛出异常,我如何保证
void test() noexcept
{
//do something
int i;
}
是noexcept?
【问题讨论】:
-
你问有没有办法通过声明一个变量来抛出异常?
-
是的。这就是我的意思。
-
声明一个POD(普通旧数据:
int等)类型不会抛出异常;但是,任何其他构造函数可能抛出异常。检查文档。可以看到std::condition_variable的构造函数可以抛出异常。 -
你为什么需要这个?你想达到什么目的?
-
致@AustinWBryan,实际上,我正在检查我的代码是否为noexcept。
标签: c++ exception noexcept exception-safety