gpt4 book ai didi

c++ - 为什么这个 C++ 折叠表达式有效?

转载 作者:可可西里 更新时间:2023-11-01 18:26:06 26 4
gpt4 key购买 nike

关于 cppreference ,我看到折叠表达式有四种,一元右,一元左,二元右,二元左。这里折叠表达式的类型是什么?我很难理解为什么它有效。

    template <typename Res, typename... Ts>
vector<Res> to_vector(Ts&&... ts) {
vector<Res> vec;
(vec.push_back(ts) ...); // *
return vec;
}

如果有,* 行中的“pack”、“op”和“init”的值是多少?

此示例来自 Bjarne Stroustrup 的 A Tour of C++ 的第 244 页book,似乎在示例中忘记了一个逗号,因此我很困惑。

最佳答案

语法无效。它缺少逗号(很可能是拼写错误):

(vec.push_back(ts), ...)
// ^

所以它是“一元右折”:

( pack op ... )

op 是一个逗号。

关于c++ - 为什么这个 C++ 折叠表达式有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57777242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com