sti*_*tix 5 c++ stl cout ofstream c++11
我正在使用一些使用类型的全局调试记录器的代码std::ofstream*.我想将它重定向到std :: cout,因为我实时使用代码,而不是为它设计的批处理方法.
是否可以将std::ofstream*其使用的全局指针重定向到std::cout?我知道std::ofstream继承自std::ios,允许用户使用该rdbuf()方法更改流缓冲区,但遗憾的是它似乎std::ofstream重新定义了rdbuf()方法,这使得以下代码无法编译:
gOsTrace = new std::ofstream();
gOsTrace->rdbuf(std::cout.rdbuf());
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法将gOsTrace对象重定向到指向cout?
在rdbuf()具体的iostream流类的方法隐藏在声明的一个std::ios.您需要一个明确的限定才能找到基类重载:
gOsTrace->basic_ios<char>::rdbuf(std::cout.rdbuf());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2782 次 |
| 最近记录: |