如何使用折叠表达式在(cout << ... ... << args)中插入空格?

Ami*_*sta 2 fold-expression c++17

给定

template<typename ...Types>
void print(Types&& ...args) {
    (cout << ... << args);
}
// ....
print(1, 2, 3, 4); // prints 1234
Run Code Online (Sandbox Code Playgroud)

如何添加空间以便我们得到1 2 3 4

更新:

正确答案: ((std::cout << args << ' ') , ...);

T.C*_*.C. 6

通常的解决方法是改为使用逗号运算符,尽管简单的方法会留下尾随的空格:

((std::cout << args << ' '), ...);
Run Code Online (Sandbox Code Playgroud)

更改它以避免遗留空格留给读者练习。

  • 您需要额外一对括号,(((std :: cout &lt;&lt; args &lt;&lt;''),...)` (2认同)