【发布时间】:2012-08-18 20:08:03
【问题描述】:
我正在使用一个库,它有一个功能:
static void printSingleExpr(std::ostream &os, const ref<Expr> &e);
但是,我想使用ofstream 而不是std::ostream 输出到文件,当我传递ofstream 实例时(如预期的那样),我收到错误消息。有没有办法在不修改函数本身(或重载函数)的情况下实现这一点?
【问题讨论】:
我正在使用一个库,它有一个功能:
static void printSingleExpr(std::ostream &os, const ref<Expr> &e);
但是,我想使用ofstream 而不是std::ostream 输出到文件,当我传递ofstream 实例时(如预期的那样),我收到错误消息。有没有办法在不修改函数本身(或重载函数)的情况下实现这一点?
【问题讨论】:
你一定是传递了一些错误的东西。 std::ofstream 继承自 std::ostream,因此可以用来代替 std::ostream。换句话说,以下应该有效:
std::ofstream f("x.bin");
printSingleExpr(f, x);
确保您的 std::ofstream 引用由于某种原因不是恒定的或易变的。
【讨论】: