カテゴリー C++/C

[C++] std::vectorの初期化

std::vectorのオブジェクトに初期値を入れたいときにどうするか。 stackoverflow.comではこの質問は何度も上がっている。 回答は例えば以下のようになる。 C++(03): Easiest way t […]

[C++] メンバー関数をcallbackしたい

member 関数をcallbackとして渡したいときの解決方法。 staticな関数はアドレスを取れるが、同じことをmember関数にしてみるとコンパイルエラーとなる。 C++ class member callbac […]

[Windows] std::listをiteratorで探索中に要素を削除するとき

listをiteratorでたどりながらeraseで要素を削除すると、削除された要素が無効になる。そのためiteratorは別の有効な要素をささねばならない。 stackoverflow.comに投稿されたこの質問への答 […]

[Windows] FAILED(S_FALSE)はfalseになる

確実にfalseに判定すると考えていた手順がtrueになっているので調べた結果、思い込みに気が付いた。 のようなコードでMyFunction()はエラー時には S_FALSEを返す。S_FALSEではif文がtrueとな […]

VS2010, 2012のC++11仕様サポート状況

最近は書籍やウェブサイトなどに載っているソースコードがC++11の機能を使っていることが増えてきた。 コンパイラの対応状況を知らずに使うと意外なところでコンパイルエラーになることがある。 Visual Studio 20 […]

function オブジェクトと関数へのpointerは互換ではない

STLのメソッドの関数の引数にどちらでも渡せるのは、これらが互換だからではなくSTLがどちらでも同じ動きになるように書かれているから。 function pointerのかわりにlambda関数かstd::functio […]

[Windows] dbgheap.cのassertion エラー

他で作成したソースコードを取り込んでdllにし、コンパイル・リンクしたところ File: f:\dd\vctools\crt_bld\self_64_amd64\crt\src\dbgheap.c Line: 1424 […]