问题标签 [fold-expression]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - enable_if_t 中带有折叠表达式的编译器错误
我有以下代码,其中我使用折叠表达式来评估是否所有包参数都可以转换为第一个函数参数。由于某种原因,当我做出看似非常微不足道的更改时,它无法在 msvc 上编译:
更改TRY
为0
让它编译,演示在:https ://godbolt.org/z/EGvQ-N
我缺少的两个变体之间是否存在重要区别,或者这是编译器错误?
c++ - 关于在模板中使用可变参数的逻辑运算符
我不知道这段代码发生了什么。
SimpleFunction(1,2,3)等于
SimpleFunction(1)等于
SimpleFunction()等于
什么是“某事?”
SimpleFunction(void) 中发生了什么?
一元折叠中的逻辑运算符有什么特别之处吗?
c++ - 折叠表达式、参数包扩展、类成员函数中的递归
我正在尝试创建一个有限状态机层次结构类型结构。我要做的是检查当前状态是否存在,如果它不返回,然后检查是否所有下一个状态都存在。一旦其中一个失败,它也会返回。
我不确定是否可以使用折叠表达式或可变参数包扩展来完成,但我一直收到参数包未扩展的错误。我不确定我是否可以这样做,或者我是否需要一个辅助函数或其他一些机制。
这是我的方法:
c++ - 使用 && 运算符连接折叠/可变参数表达式的输出
如果所有调用都返回,则函数all_checked
意味着返回,否则。true
parse(...)
true
false
如何将所有输出链接在一起,以便我有效地得到
现在,它只返回parse(...)
最后一个元素。
我尝试过其他语法,例如
但它没有编译。
c++ - 为什么这个 C++ 折叠表达式有效?
在cppreference上,我看到折叠表达式有四种类型,一元右、一元左、二元右和二元左。这个折叠表达式的类型是什么?我很难理解为什么它是有效的。
* 行中的“pack”、“op”和“init”的值是多少,如果有的话?
这个例子来自 Bjarne Stroustrup 的A Tour of C++ book 的第 244 页,并且似乎在例子中忘记了一个逗号,因此我很困惑。
c++ - 是否可以使用 C++17 折叠表达式仅折叠包的一部分?
我试图弄清楚如何使用 C++17 折叠表达式仅折叠可变参数模板包的一部分。假设我想创建一个编译时“分隔字符串”,例如"str1_str2_str3_....."
使用这样的代码可以很容易地完成(只是一个例子):
然后我们可以这样执行
如您所见,最后一个分隔符有问题。如果没有运行时检查,有什么办法可以避免这个问题?我可以想象的一种解决方案是仅折叠 (N - 1) 个 args 并“手动”连接最后一个。
c++ - 如何折叠和static_assert所有参数?
以下内容无法编译:
c++ - 用字符串及其大小折叠表达式
我有这样的 C++14 代码。
我正在更新到 C++17。有没有办法将其重写为折叠表达式?
c++ - 折叠表达式和参数包:静态断言中的 Args&& 和 Args 之间的区别
此代码来自
https://en.cppreference.com/w/cpp/language/fold
我不明白为什么静态断言检查Args&&
而不是检查Args
?