ゆとりーなの日記

日記的な事を書いて行くと思はれる

MSVC

標準ライブラリに入つたライブラリでもBoostの方がお得感あるライブラリ

std::system_errorとboost::system::system_error MSVCのstd::system_errorはGetLastErrorを渡してもFormatMessage相當のメッセージをwhatで返󠄁してくれない(VS2015 Previwの時點)。 試しに以下のコードを實行してみても、 int WINAPI WinMain(HINSTANCE, HI…

MSVCでのデバッグ小ネタ

メモリリークを調󠄁べる _CrtSetDbgFlagを使󠄁とメモリリークが檢出できる。アプリ終󠄁了時にメモリの解放忘れがあると、デバッガにその情󠄁報を出力してくれる。 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); デバッグビルドでしか有效にな…

COM風の繼承にC++の常識は通󠄁用しない

C++を打つ者󠄁にとつては「"インターフェースクラス"の"デストラクタ"を"virtual"にする」事は日本語で云ふ「"私は"の"は"は"わ"ではなく"は"と書く」くらゐの常識であるが、DirectX等でお馴染みのCOMではこの常識は通󠄁用しない。 例へばXAudio2なんかではボ…

VisualC++2013の警吿

確か以前󠄁のバージョンにはなかつたと思ふのだが、VisualC++2013には「警吿を全󠄁て有効にする(/Wall)」と云ふオプションがあつた。これを使󠄁ふと-Wallとしても全󠄁然出さない警吿があるgccとかと違󠄂つてMSVCは全󠄁力で警吿を出してくるらしい。しかしいざこれ…

_com_ptr_tとテンプレートエイリアス

VC++2013ではテンプレートエイリアスがサポートされてゐるので、_com_ptr_tの型宣言の際にマクロに賴らなくても綺麗に書けるのではと思つて試してみた。 template <typename T> using com_ptr = _com_ptr_t<_com_IIID<T, &__uuidof(T)>>; int main() { com_ptr<ID2D1Factory> factory; } 通󠄁つて欲しかつたがコンパ</id2d1factory></_com_iiid<t,></typename>…

Visual C++2013のto_string

何故かto_stringネタが續いてゐるが、twitterを見てたら懷かしい記事VC++2010のto_stringは使いものにならない - 名古屋313の日記が出てきたので折角Windows8.1環󠄁境を入手したんだしVisual Studio 2013のDesktop版を入れて試してみた。 #include <string> int ma</string>…