yohhoyの日記

技術的メモをしていきたい日記

Boost

threadの利用と例外安全(その1)

C++11標準ライブラリとBoost.Threadライブラリ(Boost 1.48.0)に含まれる、threadオブジェクトのデストラクタの振る舞いと例外安全に関するメモ。2020-12-02追記:C++2a(C++20)標準ライブラリでは、デストラクタで自動的にjoinを呼び出すstd::jthreadが追加…

C++11 FuturesとBoost.Thread Futuresの比較

C++11標準ライブラリで新たに追加された Futuresライブラリ/標準ヘッダfuture と、Boost.Threadライブラリ(Boost 1.48.0) の機能比較。両者のFutures機能*1が提供するクラスと関数の対応関係を下表にまとめる*2。C++0xドラフト段階からBoost.Threadライブラ…

bind placeholderの最大数

C++11標準ライブラリに新しく追加された std::bind で利用する、引数のプレースホルダ( std::placeholders::_1 とか)の最大数についてメモ。 C++11標準規格では少なくとも _1,... _10 まで定義される。処理系定義。 Boost.Bindでは _1,... _9 まで提供する…

minmaxアルゴリズム

C++11標準ライブラリに新しく追加されたアルゴリズムstd::minmax, std::minmax_elementについてメモ。名前の通り、最小値/最大値を一括して求めるアルゴリズム。(以下、引数に Comparator を取るオーバーロードは省略) // 25.4.7, minimum and maximum: te…

iotaアルゴリズム

C++11標準ライブラリに新しく追加されたアルゴリズムstd::iotaについてメモ。 シーケンス要素へ昇順で連続値を代入するアルゴリズム。 最初はitoaかと思い「なぜに今更?標準化したの?」 ギリシャ文字の ι/イオタ から来ているらしい。江添さんの本の虫 が…

windows.hのmin/maxマクロ回避策4パターン

Microsoft Windowsプラットフォームのヘッダファイル windows.h は悪名高いmin, maxマクロを定義するため、プリプロセス時に意図せずminやmaxが置換されてしまい、妙なコンパイルエラーを引き起こす場合がある。一例としてMSVC10で下記コードをコンパイルす…