2011-06-29 31 views
2

想象一下,我有一个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处理这类事情。

或者另外:如何以相似的代码简洁度提取数据?也许有更好的替代流语法。

+0

如何重载全局运算符'