【发布时间】:2015-01-02 13:55:27
【问题描述】:
我写了一个模板(如下所示)但编译失败
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)
错误 C3312:找不到类型“const std::_Vector_val<_val_types>”的可调用“开始”函数
与[_Val_types=std::_Simple_types]
参见正在编译的函数模板实例化 'Json::Value iterable2json,std::_Vector_val>(const std::_Vector_val<_val_types> &)' 的参考
with[ _Value_type=int, _Val_types=std::_Simple_types ]
错误 C3312:找不到类型“const std::_Vector_val<_val_types>”的可调用“结束”函数
与[_Val_types=std::_Simple_types]
错误 C2065:“elt”:未声明的标识符
【问题讨论】:
-
能否请您添加您遇到的编译器错误?