Go言語。channelを閉じることで任意の数のgoroutineに終了を指示できる

Go 言語で子スレッド、もとい子 goroutine を立ち上げてタスクを処理させる状況で、かつ起動するワーカーの数が事前に決定されていない(処理要求の到着に応じて起動するような)場合。channel を使って安全に子ス … 続きを読む Go言語。channelを閉じることで任意の数のgoroutineに終了を指示できる

「corecrt.hが(あるのに)見つからない」ためBoostビルド不可、を解決

先日の CMake と Boost の記事を書くために色々と試行錯誤する中で、Visual Studio 2015 をアップデートしたり古い Windows 10 SDK をアンインストールしたりした結果、いつの間にか Boost をビルドできなくなっていた。対策に時間を取られた「b2 の罠」と対策について備忘録。なおビルドできないというのは、具体的には b2 を実行すると次のように corecrt.h が見つからない」というエラーが出る状態のこと:

続きを読む “「corecrt.hが(あるのに)見つからない」ためBoostビルド不可、を解決”

cmakeコマンドでのビルド・クリーン・テスト

CMake は、Makefile や Visual Studio プロジェクトといったビルドツール用ファイル群を生成するだけでなくコンパイルや単体テストの実行もできる。もちろん makemsbuild コマンドでビルドも単体テスト実行もできるのだけれど、cmake コマンドから行うと各ビルドツールのコマンドラインオプションを忘れても良いため、Linux と Windows を行ったり来たりしながら開発する場合などは少し脳ミソの負担が軽減される。また、地味ながらリリースビルド時に msbuild の長ったらしいコマンドラインオプションを打たずに済むのもメリットかもしれない。あと、単純に実行するだけなら単体テストランナーの実行ファイルを直接指定して実行する必要が無いため、単体テストランナーの出力パス等を忘れられる点もメリットかもしれない。

続きを読む “cmakeコマンドでのビルド・クリーン・テスト”

CMakeでCRTライブラリを静的リンクするVisual Studioプロジェクトを出力する

CRTライブラリを静的リンクする(/MT コンパイルオプションを使う)よう設定したVisual Studioのプロジェクトファイル (.vcxproj) をCMakeで生成する方法について勉強したので、備忘録。

なお、本質的な内容は公式 Wiki の FAQ に掲載されている方法と変わらない。ただ Wiki の記載をすんなりと理解できなかったので、自分なりにかみ砕いて理解して、自分の価値観的なメリット・デメリットを沿えつつ書き起こしてみた次第。

続きを読む “CMakeでCRTライブラリを静的リンクするVisual Studioプロジェクトを出力する”

ackをvimの外部grepで使う

一度に複数のソースファイルから特定のテキストパターンを検索するにはackを使うと便利。自分にとっての”find|xargs grep“イディオムに対するackの最大のメリットは、特別なオプションを指定しなくともプログラミングに無関係なファイルを検索対象から除外してくれる点。これをvimの外部grep機能から呼び出して使う方法について備忘録。

続きを読む “ackをvimの外部grepで使う”