c*******t 发帖数: 1095 | 1 有用过boost serialization的么? 能不能有啥办法实现用一个变量既表示iarchive,
又表示oarchive?
比如
变量 a,
if (doWrite) {
a 就是 oarchive;
}
else {
a 就是 iarchive;
}
然后对a进行处理。。。
谢谢 | X****r 发帖数: 3557 | 2 把“对a进行处理”那部分写成个template function:
template
void doSomeThing(A& archive, const SomeOtherData& data) {
//...
}
在你的调用的地方:
if (doWrite) {
// Create an oarchive object
doSomeThing(oarchive, data);
} else {
// Create an iarchive object
doSomeThing(iarchive, data);
}
不过你需要这样做的时候往往意味着你可能需要重新考虑一下你的设计,比如这个
SomeOtherData可以改为Serializable用doSomeThing来Serialize。
【在 c*******t 的大作中提到】 : 有用过boost serialization的么? 能不能有啥办法实现用一个变量既表示iarchive, : 又表示oarchive? : 比如 : 变量 a, : if (doWrite) { : a 就是 oarchive; : } : else { : a 就是 iarchive; : }
|
|