Doom 3ソースコードのコード品質に関するブログ投稿を読んでいますが、理解できないC++コードの一部に行き詰まってしまいました。私はC++プログラマーではないと言わなければなりません。
問題のあるコードは次のようになります。
Sys_StartAsyncThread(){ // The next look runs is a separate thread.
while ( 1 ){
usleep( 16666 ); // Run at 60Hz
common->Async(); // Do the job
Sys_TriggerEvent( TRIGGER_EVENT_ONE ); // Unlock other thread waiting for inputs
pthread_testcancel(); // Check if we have been cancelled by the main thread (on shutdown).
}
}
(http://fabiensanglard.net/doom3/index.phpから、トピック「ループの展開」の下で取得)
これは、-の戻り値へのパラメーターとして渡されるクロージャーのように見えますSys_StartAsyncThread()
が、私の知る限り、これはC ++では不可能でありSys_StartAsyncThread()
、void型でもあるので、ここで何が起こっているのでしょうか。
の定義はここSys_StartAsyncThread()
にあります。