2007-12-01から1ヶ月間の記事一覧

goto では、デストラクタは呼ばれる

僕は、goto が嫌いだ。まあ、好きな人なんていないとは思うが。一度でも“今は亡き前任者の goto”に泣かされたことがあれば、全ての goto 文は「goto HELL;」にしか見えなくなるはずだ。“goto 文の全てが悪いわけではない”、“多重ループからの脱出には goto …

C++ で longjmp() 関数を使ってはならない

longjmp() 関数を使うと C でも例外処理っぽいことができるわけだが、これは、間違っても C++ プログラム中では使ってはならない。まあ、C++ には本物の例外処理があるので使うわけもないのだが、C との混合プログラミング*1の際などには注意を要する。 問題…

longjmp() 関数と例外処理

C 言語の野放図なパワーを見せつけてくれるのが longjmp() 関数だ。とりあえず、サンプルコードを見てみよう: #include <setjmp.h> #include <stdio.h> void f(jmp_buf jmpBuf) { puts("f() called."); longjmp(jmpBuf, 1); } int main() { jmp_buf jmpBuf; setjmp(jmpBuf); put</stdio.h></setjmp.h>…

as per the standard

「標準規格の通りに」 (実装しましたよ、動いてますよ、……、etc) みたいに言う場合は、「as per the standard」。 「英辞郎 on the Web」で見たところによると、「as per」は「そっくりそのまんま、その通りに」みたいな感じなのかな。

out of thin air

「out of thin air」で「どこからともなく」。 たとえば、Java の long への代入は上位と下位の32ビットずつに分けて実行してもいいことになっているが、実際にそうなった場合、0x0000000000000000 に 0x0123456789ABCDEF をしたはずなのに 0x01234567000000…

works for me

「works for me」で「僕のところでは大丈夫」という意味。 バグトラッカで見たのが最初だったんだけど、恥ずかしい話、今日まで「それは僕の仕事です → 引き受けた!」みたいな意味だと思ってました。

コンテキストクラスローダって何だ?

システムクラスローダと似たようなものに、「(スレッドの) コンテキストクラスローダ (context class loader)」というものがある。前々から名前だけは知っていたのだが、特に必要とする機会もなかったので何なのかは知らないままだった。今回、システムクラ…

用語は正しく覚えよう: システムクラスローダとブートストラップクラスローダ

ディスカッションの最中、どうも話がかみ合わないと思ったら用語の使い方が間違っていた、ということが時々ある。同じ概念を違う用語で呼んでいる場合はすぐに気づくので問題ない*1が、同じ用語で違う概念を指していると混乱の元凶になる。なので、ちょっと…