• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(C++)スマートポインタをメンバ変数で使いたい)

(C++)スマートポインタをメンバ変数で使いたい

このQ&Aのポイント
  • Viual Studio 2013を使ってC++のコードを書いています。以下のコードで、new-deleteのクラス生成をスマートポインタで置き換えたいのですが、うまくいきません。
  • 具体的には/* not smart */の部分をスマートポインタで置き換えたいが、C2059のエラーが出てきてコンパイルできないのが理解できていません。
  • どなたかわかる方教えていただければ幸いです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

C++03 だとそもそもメンバの初期化をその場で指定する事はできません。 C++11 でメンバを初期化する時はコンストラクタ呼出の形式ではなくて、統一的な初期化構文(uniform initialization)を使う必要があります。 std::unique_ptr<Hoge> test{new Hoge}; // () ではなく {}

Nicolas_2013
質問者

お礼

完璧な回答、ありがとうございます。 おっしゃる通りに直すとコンパイルも通り解決しました。

関連するQ&A