我错误地在 a 之后粘贴了一条throw
语句,return
最终结果如下:
void DXManager::initialize(const std::shared_ptr<nae::Context>& ctx_ptr)
{
// ...
if (FAILED(result))
{
return throw std::exception("Failed to enumerate display mode list");
}
// ...
}
我在注意到错误之前成功构建了解决方案,我很好奇哪个规范允许上述语法。
通过阅读cppreference.com(在 Notes 下),我看到
throw-expression 被归类为 void 类型的纯右值表达式。与任何其他表达式一样,它可能是另一个表达式中的子表达式,最常见于条件运算符中:
double f(double d) { return d > 1e7 ? throw std::overflow_error("too big") : d; } // ...
但我不太确定这是我要找的。