我正在学习C++,我的目标是在控制台中展示一个美观的表格。我尝试使用std::left
和std::right
这些输入/输出操纵符,但现在当我看着我的代码时,我无法弄清楚这些东西到底是什么,以及它们使用了什么样的机制。
到目前为止,每个函数调用都要求我至少在函数名后面放上空括号()
,这样就不会混淆哪些是函数,哪些不是。
cplusplus.com和cppreference.com让我理解left
和right
确实是函数,但可以不使用括号来调用它们。
简而言之,为什么我可以像这样无需括号地随处放置left
,而其他任何函数调用都要求我使用括号()
?
left
是一种叫做"manipulator"的东西,但这是我第一次听到这样的说法。我不知道"manipulator"这个术语的定义是什么,也不知道网站上的内容是否有任何意义。
的成员函数的信息(
std::ostream和一堆其他输出流类型都是
std::basic_ostream的特化版本)。有很多重载,但其中三个(链接中的18到20号)是函数。每个重载都调用传递给它们的函数,并用于实现IO操作符。其中一个重载将接受
left`,调用传递的函数,该函数将执行所需的操作。 - Peter