Подтвердить что ты не робот

Выброс исключений из диапазона в С++

Этот код работает;

int at(int index) {
  if(index < 1 || index >= size)
    throw 0;

  return x[index];
}

Но это не

int at(int index) {
  if(index < 1 || index >= size)
    throw std::out_of_range;

  return x[index];
}

Я получаю сообщение об ошибке "ожидаемое первичное выражение до"; ". Теперь... это меня удивляет, потому что я знаю, что std:: out_of_range существует, и у меня есть

#include <stdexcept>
4b9b3361

Ответ 1

Замените throw std::out_of_range; на throw std::out_of_range ("blah");. То есть вам нужно создать объект, вы не можете бросить тип.