此代码有效;
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>
答案 0 :(得分:71)
将throw std::out_of_range;
替换为throw std::out_of_range ("blah");
。即你需要创建一个对象,你不能抛出一个类型。