c++ - C++中的流操纵器如何成为函数?

标签 c++ manipulators

<分区>

在C++中调用函数时,函数名后接()以区别函数调用。为什么我不能以相同的方式调用流操纵器函数

为什么不允许这样做?:

cout << "Hello!" << endl();

endl 不是一个保存\n 的变量吗?

谢谢!

最佳答案

操纵器是专门设计用于与流对象上的插入 (<<) 和提取 (>>) 运算符结合使用的函数,例如:

cout << boolalpha;

它们仍然是常规函数,也可以像使用流对象作为参数的任何其他函数一样调用,例如:

boolalpha (cout);

所以,在你的代码中,你可以这样做

cout << "Hello!";
endl(cout);

代替

cout << "Hello!" << endl;

Source .

关于c++ - C++中的流操纵器如何成为函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23043127/

相关文章:

C++ XQuery 引擎 - zorba 或 XQilla 或其他

c++ - 重载 C 宏

c++ - 类初始化中的静态 lambda

c++ - SDL程序中的多重定义错误

c++ - 自定义操纵器使用 Visual C++ 而非 g++/clang 进行编译

c++ - 用于读取 double 的 istream 操纵器

C++ 缩进输出类继承 ofstream

c++ - 使用 C++ 模板指定协变/逆变行为

c++ - 类的自定义流操纵器

c++ - C++ 表达式中尾随流操纵符的含义