現在、私はC++でパラメータパックを使用しています。私はこの小さなスニペットを書いている:std :: stringsのstd :: arrayを初期化するためにParamterパックが正しく展開されます。
template<typename ...Targs>
auto toString(Targs... args) -> std::array<std::string,sizeof...(Targs)>
{
return {
{
(std::forward<std::string>(std::to_string(args)),...)
}
};
}
それは何の真の目的を持っていないが、運動は/数と種類を変えることができる指定されたパラメータから文字列の配列を作成することですました。
std::array<std::string,3> SomeName = { {std::to_string(1),std::to_string(2),std::to_string(3)} };
が、より一般的な:私は達成することを望んだ何
は、次の操作を実行することでした。これがtoString
の機能のアイデアでした。残念ながら、私が得る結果は、私が期待したものではありません。返されたstd::array
は、toString
に与えられた最後のパラメータのみを含み、残りの文字列は空です。
しかし、私が実際に期待したのは、toString
に与えられた各引数が文字列に変換され、配列の要素に入れられることでした。
パラメータパックのアンフォールディングについて私は何を欠場しましたか?それとも私はちょうどannoyinglyばかげた間違いを持っていますか?