[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
777: デフォルトの名無しさん (ワッチョイ d963-lHAu) [sage] 2025/03/22(土) 23:48:30.44 ID:kbZO019Z0 >>776 >new Foo() を Foo のメンバ関数の中でやる分には自分自身の中でやることなので friend 宣言は不要。 と思うじゃん? ↓現実 >friendにしないとビルドが通らないかった(VS2022、VS2015)。(>>774 エラーメッセージは熟読していませんぬが、 多分クラステンプレートの実体化がクラスのメソッド全部についてまとめて行われる的なことが起きて、 Tのコンストラクタにアクセスするstd::unique_ptr<T>のメンバ関数(moveコンストラクタとか)が引っかかるのだと予想 http://mevius.5ch.net/test/read.cgi/tech/1698705458/777
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
781: デフォルトの名無しさん (ワッチョイ 9901-Awih) [sage] 2025/03/23(日) 00:21:43.38 ID:/EbbY7QB0 >>777 エラーメッセージは読まんといかんよ 分からんときは今ならLLMに読ませると良い http://mevius.5ch.net/test/read.cgi/tech/1698705458/781
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.040s