我正在尝试使用 clang 3.6 '--std=c++1z' 的折叠表达式,但我不太明白。我正在测试的功能是:
auto minus = [](auto... args) { return (args - ...); };
...
std::cout << minus(10, 3, 2) << std::endl;
根据n4191,我预计它会扩展为左折叠
(10 - 3) - 2
这给出了结果 5,但是,结果是 9,这似乎是一个右折叠扩展,即
10 - (3 - 2)
我是否遗漏了什么或误解了 n4191?谢谢