C/C++の単体テスト・自動試験のフレームワークの一つであるgtestについてまとめました。環境構築・サンプルコード・コンパイル方法を紹介しているので、この記事を読めばgtestが使えるようになります。
gtestは導入が簡単で機能が豊富、さらにテストコードも書きやすいのでオススメです。

目次(リンク貼ってないものは今後試してみたい項目) マルチスレッド・排他制御(boost::thread) コンフィグ解析 コマンドライン引数のオプション解析 jsonのパース タスクスケジューラ ログ出力 テスト リングバッファ 時刻・日付 グラフ作成 マルチプロセス・排他制御 メモリプール Python 正規表現 タイマー時刻測定 UUID 1.マルチスレッド・排他制御(boost::thread) 長くなったので別ページにしてます。https://www.mathkuro.com/?p=805 内容は以下の感じでまとめています。 基本形 サンプルコード コンパイル例 引数を渡す場合 返り値(戻り値)を受け取る場合 クラスのメンバ関数でスレッドを立てる場合 排他制御(mutex) 基本形 recursive-mutex read-lock/write-lock(shared-lock/upgrade-lock) 条件変数(condition variable) エラー等の対処・TIPS BOOST_THREAD_MOVABLE_ONLYでコンパイルエラー boost::condition_variableでアボート undefined reference to symbol ‘_ZN5boost6system15system_categoryEv’でコンパイルに失敗…

boostの中でも特によく使うthread周りの色々をまとめておきます。
threadの基本形・引数アリver・返り値アリver・クラスのメンバ関数verをご用意しております。
コンパイル例・mutex・条件変数についても追記しました。

今日も表題の通りなんですけど、ログ仕込むならerrnoまで書いてよって話です。 勿論、理想を言えばエラーが一切発生しないに越したことはないんですけど、まあ、現実問題としてそんなことはあり得ないじゃないですか? で、そんな時に皆さんログを埋め込んでると思うんですけど、システムコールから返ってきたエラーをログに出すときに、”IO Error”とか、”Network Error”っていうログをよく見るわけですよ。(ひどい時は大量の”Unknown Error”ですね…) 全くログを吐かずに突然死するプログラムに比べたら100万倍ましなんですけど、もう一歩進んでエラーの原因まで書いて欲しいなと解析する側に回った時に思うわけです。 いや、外向けに出すログとしては別にそれで良いんですよ?実装を隠すという意味で。 でも、デバッグログ欲しいなー超欲しいなーー はい、と言うことで、作るときはめんどくさいんですけど、システムコールのerrno出力する位だったらホントに10文字ちょい追加するだけなんで是非実践して欲しいです。 Cでerrnoを書く場合の例 // ↓インクルード必要#include <errno.h> // 実際のコード部分if (なんかシステムコールでエラー) {  printf(“errno=%d, %s\n”, errno, strerror(errno));} <ちょろっと解説>システムコールでエラーが発生するとerrnoにエラーに対応する値が設定されます。strerror(errno)でエラー番号に対応するエラーの文字列がエラー出力されます。便利! システムコールのエラーログには是非errnoを使っていきましょう!