如何抛出“模板参数”类型的异常?

时间:2018-04-25 23:53:39

标签: c++

我有这样的模板标题:

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;

我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据this page,表达式throw需要另一个表达式。

但您提供的throw表达式declaration不是expression

Exc e{"message"};
throw e;

throw Exc{"message"};

正如贾斯汀所说的那样。