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 の場合にのみ例外をスローしないことをコンパイラに伝えようとしています。
助けていただければ幸いです。正しく説明していることを願っています。簡単な説明だけでも結構です。