[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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
784: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-PAPZ) [sage] 2025/03/23(日) 09:32:31.18 ID:Ft35v0Bz0 元の話題からはずれる余談だけれど、静的記憶域期間を持つブロックスコープの変数は最初に通過したときに初期化されるルールがある。 (条件によるので常にではない。) https://timsong-cpp.github.io/cppwp/n3337/stmt.dcl#4 なのでシングルトンパターンはこう単純化して書くことも出来る。 #include <memory> class Foo { Foo() = default; public: static Foo* createInstance() { static std::unique_ptr<Foo> m_pObj = std::unique_ptr<Foo>(new Foo); return m_pObj.get(); } }; int main(void) { auto bar = Foo::createInstance(); } http://mevius.5ch.net/test/read.cgi/tech/1698705458/784
786: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ed32-PAPZ) [sage] 2025/03/23(日) 10:45:14.55 ID:Ft35v0Bz0 >>785 意味ないな。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/786
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.037s