Можно ли объявить следующую функцию noexcept, хотя v.at(idx) теоретически может генерировать исключение out_of_range, но практически не из-за проверки границ?
int get_value_or_default(const std::vector<int>& v, size_t idx) noexcept {
if (idx >= v.size()) {
return -1;
}
return v.at(idx);
}