[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
771: はちみつ餃子◆8X2XSCHEME (ワッチョイ e932-a7BF) [sage] 2025/03/22(土) 18:01:17.10 ID:nNEN9uWE0(1/3) AAS
>>770
770(1): デフォルトの名無しさん (アウアウエー Sa23-D2PX) [sage] 2025/03/22(土) 14:21:53.59 ID:U6/Lg1xxa(1) AAS
どっかのタイミングでbpがスタックギリギリ飛ばすんじゃなくて
コンパイラが128bytesくらい飛ばす仕様になった気がするんだけど
あれは0埋めで(ホントはバグがあるのに)奇跡的にバグ回避するテクニックなのか
他に理由あるんか
128 ビット (16 バイト) じゃない?
SIMD とかの都合で 16 バイトアラインが必要な環境が出てきたからという事情だと聞いたことある。
773
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ e932-exlI) [sage] 2025/03/22(土) 21:29:46.22 ID:nNEN9uWE0(2/3) AAS
>>772
772(1): デフォルトの名無しさん (ワッチョイ d963-lHAu) [sage] 2025/03/22(土) 20:51:53.87 ID:kbZO019Z0(1/4) AAS
質問なのですがstd::unique_ptr<T>とかstd::shared_ptr<T>みたいなSTLで定義済みの
テンプレートクラスをfriendにすることは合法?
用途はシングルトンパティーンのオブジェクトのプログラム終了時の自動解放
T のデストラクタが private なのを std::unique_ptr<T> からのアクセスは許すってこと?
特に問題ないよ。

ところでテンプレートクラスじゃなくてクラステンプレートな!
776
(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ e932-exlI) [sage] 2025/03/22(土) 23:40:24.86 ID:nNEN9uWE0(3/3) AAS
>>775
775(1): デフォルトの名無しさん (ワッチョイ d963-lHAu) [sage] 2025/03/22(土) 22:39:33.53 ID:kbZO019Z0(3/4) AAS
>ところでテンプレートクラスじゃなくてクラステンプレートな!
なるほど……orz

コード例:
class Foo {
  friend std::unique_ptr<Foo>;
  static std::unique_ptr<Foo> m_pObj;
private:
  static Foo* createInstance() {
    if (m_pObj == NULL) { m_pObj = std::unique_ptr<Foo>(new Foo()); } return m_pObj.get()j;
    // ↑ std::make_unique<Foo>()したらビルドエラー(使うには多分std::make_unique<Foo>()もfriendが要る
     //   スレッドセーフ化は省略
  }
  // ...
};
new Foo() を Foo のメンバ関数の中でやる分には自分自身の中でやることなので friend 宣言は不要。
std::make_unique<Foo>() をすると std::make_unique の中で Foo のコンストラクタを呼ぼうとするから std::make_unique<Foo> をフレンド宣言する必要がある。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s