2009-11


戻る

2009-11-14T15:58:23 (Sat)

C++ メモ (メンバ関数の関数ポインタ,new/delete 演算子オーバロード)

気付けばまさかの 1 ヶ月ぶり更新.サボるとクセになる上に,クセになるとちょっとやそっと日記を書いた程度では治らないようですw

C++ メモその 1
メンバ関数の関数ポインタの型の書き方

C++マニアクス ~メンバ関数ポインタ その2~
C++ メンバ関数へのポインタの定義方法とその呼び出し方法

Sqrat (Squirrel のバインダ) でクラスをバインドする際に,これを知らないとメンバ関数がバインド出来ません.

C++ メモその 2
new/delete 演算子オーバロード

●C++編(言語解説) 第36章 placement new
placement new と delete (1) -- placement new
placement new と delete (2) -- placement delete

2009-11-19T18:16:31 (Thu)

こんな時代に就職活動か…

http://tumblr.lanieve.jp/post/249472961/58-2009-11-18-22-48-54

全然関係ないけど,自分も tumblr のアカウントをかなり前に作ってるんだ.使おうかな…

2009-11-23T21:53:34 (Mon)

らき☆マイ PV 映像@ニコ動




再生数まだ 4 万程度って大丈夫かおい (^ω^;)

私はらき厨,信者としてもちろん DX パックを予約します (^ω^)

2009-11-30T06:53:13 (Mon)

4 ヶ月越しの疑問が解決しました (コルーチンの this のこと)

2009-07-11 のエントリで悩んでいた,コルーチンを実行したときのテーブルの問題が解決しました.

::y <- 0;

class Cls {
 x = null;
 constructor() {
  x = 0;
 }
 function method() {
  //local cr = ::newthread(f); //←こう書いていたのを…
  local cr = ::newthread(f.bindenv(this)); //←こう書けばいい!
  cr.call();
  while (cr.getstatus() == "suspended") {
   print("while loop\n");
   cr.wakeup();
  }
 }
 //コルーチン本体
 function f() {
  if ("y" in this) print("y exist\n");
  if ("x" in this) print("x exist (success!)\n");
  for (local i = 0; i < 5; i++) {
   print("coro loop " + i + "\n");
   ::suspend();
  }
  return null;
 }
}

local c = Cls();
c.method();

とすると実行結果は

x exist (success!)
coro loop 0
while loop
coro loop 1
while loop
coro loop 2
while loop
coro loop 3
while loop
coro loop 4
while loop

となります.これで目的は達成されました.

このページの bindenv の節を見ていて気付きました.ようやくです,えぇ orz

ああー長かった orz

戻る