C++
以前、1.#IND00, -1.#IND00 について記事を書いた。今日、そこに書いた方法をやってみたら上手くいかず。以前なんで上手くいったんだろう? もしかして x64 だと挙動が違うのだろうか。それで、調べてみたところ、これら無限大については !_finite(x) で判別…
MSDN のサンプル。 codeproject.com のページ これらのサンプル通りに動かすには、コントロールのコンストラクタで m_bWindowOnly = true; になっていないといけないようだ。そうしないと、OnCreate(), OnDestroy() が呼ばれない。ウィザードのオプションで…
InternetExplorer などの ActiveX コンテナの中で、ActiveX コントロール自体が個別の Window を持たずに埋め込まれている場合に、マウスをキャプチャ(SetCapture()) するにはどうすればいいか。MFC だと、MSDN のドキュメントに書かれているのだが、ATL で…
計算中に何かの問題で、値が 無限大とか、-無限大になった場合(VisualC++ だと 1.#IND000 や -1.#IND00 と出る)、それを判別したい時がある。方法はいろいろあると思うが、ひとつの方法として、
実体化は、インスタンシエーションとかインスタンス化とかとも呼ばれたりする。テンプレートクラスのメソッドや普通のクラスのテンプレートメソッドの宣言を .h、実装を .cpp ファイルに分けて書いたりすると、ちょっと困ったことが起こる場合がある。そのメ…
boost の中でも変態度高めの lambda を使ってみた。いまどきの PC ならそんなにコンパイルが遅くはならないかな、と。
C++ では、直接は関数内関数定義は使えないが、関数内クラス宣言を使うと近いものができる。
VC++2005 になって、前バージョンより、メモリリークとかワイルドポインタに厳しくなっているように思える。特に、XYZ.begin() のポインタを取ろうとして &*XYZ.begin() とかやると、場合によっては例外が飛ぶ。XYZ が例えば std::vector とした場合、長さが…