- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:(C++)スマートポインタをメンバ変数で使いたい)
(C++)スマートポインタをメンバ変数で使いたい
このQ&Aのポイント
- Viual Studio 2013を使ってC++のコードを書いています。以下のコードで、new-deleteのクラス生成をスマートポインタで置き換えたいのですが、うまくいきません。
- 具体的には/* not smart */の部分をスマートポインタで置き換えたいが、C2059のエラーが出てきてコンパイルできないのが理解できていません。
- どなたかわかる方教えていただければ幸いです。よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
C++03 だとそもそもメンバの初期化をその場で指定する事はできません。 C++11 でメンバを初期化する時はコンストラクタ呼出の形式ではなくて、統一的な初期化構文(uniform initialization)を使う必要があります。 std::unique_ptr<Hoge> test{new Hoge}; // () ではなく {}
お礼
完璧な回答、ありがとうございます。 おっしゃる通りに直すとコンパイルも通り解決しました。