想象一下,我有一个Variant类,它可以表示各种POD类型,加上std :: string,我有一个模板方法T get_value(const Variant&)
,它可以从中提取基础类型。用于从std :: vector(或其他序列)读取的流语法?
假设我有这些向量,即。 std::vector<Variant> variants;
,我想用一个方便的语法来读取它的几个值,像这样:
int x;
double y;
std::string z;
// Get elements 0, 1, and 2 as int, double, and string respectively
streamlikeObject >> x >> y >> z;
的问题是:什么是一个好办法,形成本例中的假想streamlikeObject
?我可以想象用抽取操作符创建我自己的类,但我只是对std库中是否有某些东西感兴趣,或者可能是Boost处理这类事情。
或者另外:如何以相似的代码简洁度提取数据?也许有更好的替代流语法。
如何重载全局运算符' streamlikeObject&operator <<(streamlikeOperator&s,T&t)'? –
问题是streamlikeObject不存在。 :) – Kylotan