std::forward
はテンプレート引数に対して使うものなので、ここで示した使い方は流儀に反するのかもしれません。
クラスfoo
のコンストラクタにクラスbar
のオブジェクトを渡す。
このとき、std::move
で渡す場合(check_move_0
)と、値で渡す場合(check_move_1
)を比較する。
出力:
19行目のstd::forward
のおかげで、必要最低限のコピーで済むことがわかる。
std::forward
を使わず、bar_(b)
と書くと以下のように不必要なコピーが行われる。
参照サイト
0 件のコメント:
コメントを投稿