C++17倍cout表达

k5hmc34c  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(142)

我正在学习新的c++17 fold表达式,我在c++17 fold expression中看到了此代码。我想知道此代码的工作原理:

template<typename ...Args>
void printer(Args&&... args) {
    (std::cout << ... << args) << '\n';
}

但不是这个

template<typename ...Args>
void printer(Args&&... args) {
    (std::cout << args << ...) << '\n';
}

这看起来也是合乎逻辑的,在我看来会颠倒印刷顺序。

ghhaqwfi

ghhaqwfi1#

cppreference所示,二元褶皱可以有以下两种形式:

其中E是 * 压缩表达式 *,I是 * 初始化表达式 *。
没有与(std::cout << args << ...)匹配的二进制文件夹,(std::cout << args << ...)的格式为(I op E op ...)

相关问题