【发布时间】:2011-09-25 09:51:09
【问题描述】:
假设我有一个 Variant 类,它可以表示各种 POD 类型,加上 std::string,我有一个模板方法 T get_value(const Variant&) 可以从中提取基础类型。
假设我有一个向量,即。 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 感兴趣。
或者:如何以类似程度的代码简洁性提取这些数据?也许有更好的替代流语法。
【问题讨论】:
-
重载全局运算符
<template T> streamlikeObject & operator<<(streamlikeOperator & s, T & t)怎么样? -
问题是 streamlikeObject 不存在。 :)