我有这样的模板标题:
template<class TypeA, size_t tsize=100, class Exc=std::out_of_range>
和一个抛出Exc:
类型异常的add函数void add(TypeA* objA) {
if(nelems==capac) {
delete objA;
throw Exc e; //the line in question
}
nelems++;
elems[nelems-1]=objA;
}
我有以下错误消息:
error: expected primary-expression before ‘e’
throw Exc e;
我做错了什么?
答案 0 :(得分:1)
根据this page,表达式throw
需要另一个表达式。
但您提供的throw
表达式declaration
不是expression
。
试
Exc e{"message"};
throw e;
或
throw Exc{"message"};
正如贾斯汀所说的那样。