Gab*_*ard 5 c++ fold-expression c++17
我正在学习新的c ++ 17 fold表达式,我从c ++ 17 fold表达式中看到了这段代码.我想知道为什么这段代码有效:
template<typename ...Args>
void printer(Args&&... args) {
(std::cout << ... << args) << '\n';
}
Run Code Online (Sandbox Code Playgroud)
但不是这个:
template<typename ...Args>
void printer(Args&&... args) {
(std::cout << args << ...) << '\n';
}
Run Code Online (Sandbox Code Playgroud)
这看起来似乎也很合理,并且在我看来会扭转打印顺序.
如cppreference所示,二进制折叠可以有以下两种形式:
哪里E是包表达和I是初始化表达式.
没有与您匹配的二进制折叠(std::cout << args << ...),其形式为(I op E op ...).
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |