[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
778: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-PAPZ) [sage] 2025/03/23(日) 00:18:05.56 ID:Ft35v0Bz0 >>777 私は Visual Stuio 2022 (MSVC 17) にコンパイルさせてエラーが出ないことを確認した上で書いてる。 手元に Visual Studio を入れていないのでオンラインコンパイラだけど。 コードを呼び出す側なども補うとたぶんこんなのだよね? 私が問題の理解を間違えている箇所はある? #include <memory> class Foo { private: static std::unique_ptr<Foo> m_pObj; Foo(void) = default; // デフォルトコンストラクタはプライベート public: static Foo* createInstance() { if (m_pObj == NULL) { m_pObj = std::unique_ptr<Foo>(new Foo); } return m_pObj.get(); } }; std::unique_ptr<Foo> Foo::m_pObj; int main(void) { auto bar = Foo::createInstance(); } http://mevius.5ch.net/test/read.cgi/tech/1698705458/778
782: デフォルトの名無しさん (ワッチョイ e563-0why) [sage] 2025/03/23(日) 01:58:28.60 ID:IgihfQRv0 >>778>>779 お騒がせしましたサーセン;;;orz ビルドが通らないというのは私めの勘違いだった模様。 コードはそれで良いです。 そのコード(最小サンプル)、および最小サンプルにする前のコード×VS2015でもfriend宣言部分をコメントアウトしてビルドが通った 。n_ フレンド宣言friend std::unique_ptr<Foo>; を付けるに至った履歴が無いので推測ですだが デストラクタがprivateのままだったタイミングがあったのかも…… (m_pObjが生ポインタのタイプのSingletonはデストラクタがprivateでもビルドが通る(デストラクタを呼ぶ人が居ないため) →この状態でm_pObjをstd::unique_ptr<Foo>に変更してビルドエラー、アクセス許可が無いとコンパイラに言われて慌ててfriend追加、だった可能性、 http://mevius.5ch.net/test/read.cgi/tech/1698705458/782
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s