0

我正在使用一个库,它有一个功能:

static void printSingleExpr(std::ostream &os, const ref<Expr> &e);

但是,我想使用ofstream而不是输出到文件,std::ostream并且当我传递一个ofstream实例(如预期的那样)时,我收到了一个错误。有没有办法在修改函数本身(或重载函数)的情况下实现这一点?

4

1 回答 1

4

你一定是传递了一些错误的东西。std::ofstream继承自 ,因此可以用来代替std::ostream. 换句话说,以下应该有效:

std::ofstream f("x.bin");
printSingleExpr(f, x);

由于某种原因,请确保您的std::ofstream参考不是恒定的或易变的。

于 2012-08-18T20:10:15.710 回答