コンマ演算子のチェーンであるかのように可変個引数展開を使用できないことを私は知っています。その質問では、サンプルは次のようになります。
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))...;
}
このように、再帰トリックを使用して必要なものを取得できることを私は知っています。私が知らないのは、なぜ標準がそのような振る舞いを記述していないのかということです。つまり、その背後にある理由は何ですか?