是否有可能将iostream传递给函数?

rsk*_*k82 -1 c++ parameters iostream function

我的意思是说:

每个人都知道这种将流重定向到输出的方法:

cout << "sometext"
Run Code Online (Sandbox Code Playgroud)

但是可以将该流传递给这样的函数:

my_function() << "sometext";
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 6

是*:

#include <iostream>
#include <ostream>

std::ostream & my_function() { return std::cout; }

// ...

my_function() << "Hello world.\n";
Run Code Online (Sandbox Code Playgroud)

*)你用语言说的任何内容都是完全正确的,你可能很难将其集成到你的项目中,但这个答案显示了如何让你的代码做你想做的.

  • @ rsk82:对不起,你的问题真的很不清楚,我根本无法理解你想要实现的目标.我有一个想法,我确定你真正想要的任何东西都可以轻松完成,但我无法弄清楚你到底想要做什么.你能否修改一下你的帖子更具体一点?也许包括一个你想要发生的更彻底的例子(伪代码很好). (2认同)

Nic*_*las 5

每个人都知道这种将流重定向到输出的方法:

那不是那个.流被调用cout; 这是iostream对象.该<<运营商不重定向任何东西.该std::ostream物体都有重载operator<<函数.当您使用<<左侧的流和某些在右侧具有重载的类型时,将调用这些函数.

<< "sometext"不是可以"重定向"的"流".它甚至不是C++中的有效表达式.该<<操作是二元的.它需要两个参数.

my_function() << "sometext";只有当它返回一个std::ostream类或从它派生的东西时才能工作.或者operator<<为它定义了重载的东西const char*.