C ++ 11(gcc 4.9):模板函数出错(将元组向量转换为单个分量向量)

时间:2015-05-08 18:07:01

标签: c++ templates gcc

使用C ++ 11(gcc 4.9)编译以下代码时,出现编译错误:

//converts tuple vector to single component vector
template<class In, class Out, int Idx>
QVector<Out> tuple_vector_to_member_vector (const QVector<In>& in_vector)
{
    QVector<Out> out_vector;
    for (In in : in_vector)
        out_vector.push_back(in.get<Idx>());
    return out_vector;
}

错误如下(并且在未实例化模板时也会发生):

 error: expected primary-expression before ')' token
     out_vector.push_back(in.get<Idx>());

(另一方面,Visual C ++ 2013接受它。)

我想那个人必须放置

typename In::get<Idx>

或类似的任何形式,但我不知道在哪里。

有人有想法吗?

谢谢。

0 个答案:

没有答案