【发布时间】:2020-04-20 11:10:07
【问题描述】:
我想获取参数包的最后一个元素。我使用以下代码GodBolt:
template<typename... Args>
auto last(Args&&... args){
const auto& last = (args, ...);
return last;
}
但现在我收到警告
逗号运算符的左操作数无效
但这正是我想要实现的...有没有办法说清楚。 一般来说,我喜欢收到未使用值的警告,所以我不想禁用所有这些值(-Wno-unused-value)。
此外,我可以使用递归模板来实现,但折叠表达式在这里似乎更好。
【问题讨论】:
-
请忽略按值返回/右值引用 ...
-
有一个预处理器指令用于暂时禁用程序一部分的警告。
-
Pre c++17 解决方案:godbolt.org/z/b-nfp3