我有一个函数想要泛化。简单来说,我有一个
该向量应包含转换后的值。
我卡在了
有提示吗?
std::string s
被处理成一个生成std::vector<std::string>
的解析器(它是一个列表,如"1, 2, 3"
),并且该函数应该返回一个std::vector<T>
,其中T
受限于double
或int
。该向量应包含转换后的值。
我卡在了
std::transform
的最后一个参数上,因为它应该在std::stod
和std::stoi
之间切换。我正在寻找的解决方案是使用模板元编程魔法,而不是使用if (std::is_same<T,int>::value)
。有提示吗?
template <class T>
auto get_vector(std::string s) -> std::vector<T>
{
std::vector<T> v;
auto tmp = split(s);
std::transform(tmp.begin(), tmp.end(), std::back_inserter(v), ??);
return v;
}
double
添加一个专业化? - alain