パスワードを忘れた? アカウント作成
508820 journal

tarosukeの日記: [talos]C++で書き直し xi 2

日記 by tarosuke

くそおーthisのスコープがーっ。ぐはぁ。どうやらFOO() : bar(this){};した場合のthisは&barぽい。BAR(FOO*)でなくBAR(void)を呼ぼうとするからな。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 私もそうしたいシーンは結構ありますので…(^^;
    ただ、FOO コンストラクタ内のメンバ初期子指定時には、this は FOO 型としてまだ完成していませんので(当然といえば当然ですが)、ある程度諦めも必要かと。
    ポインタを渡すだけなら渡せたかと思いますが、私は基本的に
    FOO () { /* ここでメンバに this を渡す */ }
    で対処することにしています。
    this を初期子として渡すと思わぬバグを誘発するかもしれませんので。
    (例えば、受け取った this ポインタを通じて関数を呼び出すなど)
    • ですねぇ...。諦めなきゃならんかー。結局のところ*複数*のキューに同時に繋ぎたいだけなんですけどね。一つなら大抵はキューノードをインヘリットすれば済む話だし。というわけで、処理系に依存したくはないんだけど諦め悪くoffsetof使うことにします。常数じゃないとテンプレートに食わせられないけどgccだと常数扱いしてくれたはずだし。
      親コメント
typodupeerror

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

読み込み中...