我在处理 noexcept 时遇到了一些麻烦。
template <int SIZE>
int pop(int idx) noexcept(noexcept(SIZE > 0)) // this is what I dont understand
{
if (idx <= 0)
throw std::out_of_range("My array doesnt go that high");
return idx;
}
这只是一个简单的函数,但你看它是如何只在 idx <= 0 时抛出异常的,我不明白。所以在我的规范中,noexcept(idx > 0),我试图告诉编译器这个函数只有在 idx > 0 时才抛出异常。我这样做对吗?
任何帮助表示赞赏,我希望我解释正确。只是一些简单的解释会很棒。