std::reverse()
のコンビニエンスラッパーを実装するには、これはC++ 11のrvalue-referencesとmove semanticsを使用する正しい方法ですか?C++ 11 std :: reverse()のコンビニエンスラッパー
template <class BIDirContainer> inline BIDirContainer&& reverse(BIDirContainer a) {
std::reverse(begin(a), end(a));
return std::move(a);
}
コードは、私のテストケースで動作しますが、私はその程度の性能が不明午前:私はここ&&
を使用するか、それがunneccesaryである必要がありますか?
STLコンテナ(既にコンストラクタをサポートしています)では正しい方法は '&&'も 'std :: move'も使用しないでしょうか? –
@Nordlöwはあなたの関数ではどちらも使用しません。あなたがムーブコンストラクタを実装している場合にのみクラスで使用してください。 C++ 11のコンテナを使用している場合は、何もする必要はありません。 – juanchopanza