我知道我们不能像使用逗号运算符链一样使用可变参数扩展。在那个问题中,样本是这样的:
template<typename... Args>
inline void increment_all(Args&... args)
{
++args...;
}
首先递增或扩展可能是模棱两可的,因此括号不会受到伤害:
template<typename... Args>
inline void increment_all(Args&... args)
{
(++args)...;
}
或类似的东西:
template<typename... Args>
void cout_all(Args&&... args)
{
(std::cout << std::forward<Args>(args))...;
}
我知道我们可以使用一些递归技巧来获得我们想要的东西,就像这样。我不知道为什么标准不描述这种行为?我的意思是,背后的原因是什么?