我正在学习新的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';
}
这看起来也是合乎逻辑的,在我看来会颠倒印刷顺序。
1条答案
按热度按时间ghhaqwfi1#
如cppreference所示,二元褶皱可以有以下两种形式:
其中
E
是 * 压缩表达式 *,I
是 * 初始化表达式 *。没有与
(std::cout << args << ...)
匹配的二进制文件夹,(std::cout << args << ...)
的格式为(I op E op ...)
。