小编try*_*000的帖子

如何编写模板将矢量转换为Json :: Value(jsoncpp)

我写了一个模板(如下所示),但无法编译

template<class t, template<typename> class iterable>
Json::Value iterable2json(const iterable<t>& cont)
{
    Json::Value v;
    for(const t& elt : cont)
    {
        v.append(elt);
    }
    return v;
}

std::vector<int> vec{1,2,3};
Json::Value v = iterable2json(vec)
Run Code Online (Sandbox Code Playgroud)

错误C3312:找不到类型为'const std :: _ Vector_val <_Val_types>'的可调用'begin'函数

[_Val_types = std :: _ Simple_types]

请参阅函数模板实例化'Json :: Value iterable2json,std :: _ Vector_val>(const std :: _ Vector_val <_Val_types>&)'正在编译

[_Value_type = int,_Val_types = std :: _ Simple_types]

错误C3312:找不到类型'const std :: _ Vector_val <_Val_types>'的可调用'end'函数

[_Val_types = std :: _ Simple_types]

错误C2065:'elt':未声明的标识符

c++ templates

4
推荐指数
1
解决办法
3886
查看次数

标签 统计

c++ ×1

templates ×1