我正在使用一个外部库中的函数,这个函数的类型如下:
int libraryFunction(int* fp(int))
然而,我需要将回调函数也传递给一个 ostream
,但是库函数没有任何允许函数对象、lambda表达式或传递额外参数的重载。有没有办法将 ostream
传递给回调函数?
我正在使用一个外部库中的函数,这个函数的类型如下:
int libraryFunction(int* fp(int))
然而,我需要将回调函数也传递给一个 ostream
,但是库函数没有任何允许函数对象、lambda表达式或传递额外参数的重载。有没有办法将 ostream
传递给回调函数?
#include <iostream>
#include <functional>
#include <fstream>
#include <map>
int main() {
enum {
jkout = 0,
cout = 1
};
std::map<int, std::ostream*> lookup;
std::ofstream jout("junk.txt");
lookup[jkout] = &jout;
lookup[cout] = &std::cout;
*(lookup[jkout]) << "hello\n";
return 0;
}
ostream
)的状态。ostream
不能过早地被销毁。
int
参数吗,还是它被库使用了? - Ben Voigt