不要な場合 std::forward
はどうなりますか?これは、templated-rvalueである内部関数引数をラップするために使用されます(つまり、lvalueまたはnamed-rvalueにすることができます)。のように:
template<class T>
void outer(T&& t) {
inner(std::forward<T>(t));
}
1つのケースは、内部関数パラメーターが値によって渡される場合だと思います。他にケースはありますか?std::begin(std::forward<Ct>(ct))
Ctがtemplated-rvalue-refである場所を書いているときに、この質問があります。
重複の可能性について編集
私の記憶が正しければ、これは、この4年前の質問を、質問を理解していない初心者が複製したものとして閉じる3回目の試みです。
「フォワードを使用する利点は?」および「r値でstd::forwardを使用しない場合は?」非常に異なる質問です。1つ目は、初心者向けのr値の紹介であり、2つ目は、上級C++ユーザー向けの完全な転送についての説明です。私はメタテンプレートライブラリとラムダライブラリの作成者であり、基本の詳細な説明は必要ありません。回答の情報は他の質問とは大きく異なります。