作者:小song喪_774 | 来源:互联网 | 2022-12-30 21:18
我正在创建一个计划从文件读/写的泛型类.
我不确定将实例化哪种类型.如何在读取阶段将字符串转换为某种未知类型?
IE
template
void fromString(std::string from, T to) {
to = from;
}
无论如何要做到这一点而不专门为大量的课程?
1> 小智..:
这样做的惯用方法是使用以下方法:
template
void fromString(std::string from, T& to) {
std::istringstream iss(from);
iss >> to;
}
解析字符串输入格式的大多数可用标准专业都将由已有的std::istream& operator>>(std::istream&, T&);
专业化涵盖.
无论如何要做到这一点而不专门为大量的课程?
不,你仍然需要对各种类的专业化
class Foo {
private:
int x;
double y;
public:
std::istream& getFromStream(std::istream& input) {
input >> x;
input >> y;
return input;
}
};
std:istream& operator>>(std::istream& is, Foo& subject) {
return subject.getFromStream(is);
}