1

「The C++ Programming language 4th edition」の次の関数テンプレートがあるとします。

template <typename TT, typename A>
unique_ptr<TT> make_unique(int i, A && a)
{
      return unique_ptr<TT>{new TT{ i, std::forward<A>(a) }};
} 

それが実際に何をするのかを理解するのは難しいと思いますが、

a は間違いなく右辺値であるため、make_unique 関数はそのコンテンツをヒープに割り当て、そのアドレスを unique_ptr に保持しているように見えるため、削除について心配する必要はありません。しかし、標準ライブラリの forward 関数は何をするのでしょうか? (右辺値と関係があると思います)C++のドキュメントを読んでみましたが、それを正しく理解していないようです。より経験豊富な C++ プログラマーから適切な説明を得たいと思っています。

ありがとう!

4

2 に答える 2