【发布时间】:2016-09-10 21:14:29
【问题描述】:
所以我要做的是编写一个通用函数,它接受一个字符串 a 将其拆分为一个类型化向量。这是我的代码,问题是它无法将 stod 函数类型解析为我指定的通用函数包装器。
#include <string>
#include <sstream>
#include <vector>
#include <iostream>
#include <functional>
using std::vector;
using std::string;
using std::function;
using std::stringstream;
int main(int argc, const char * argv[]) {
SplitStringToTypedVector("1.23 3.45 5.21", ' ', static_cast<double (*)(const string&, size_t*)>(&std::stod));
system("pause");
return 0;
}
template <typename T>
vector<T> SplitStringToTypedVector(const string &s, char delim, function<T (*)(const string&, size_t*)> conversionFunc) {
vector<T> elements;
stringstream stream;
string element;
while (getline(stream, element, delim)) {
elements.push_back(conversionFunc(element));
}
return elements;
}
【问题讨论】: