あめだまふぁくとりー

Boost.Graphとかできますん

2015-01-01から1年間の記事一覧

名前解決から始める C++

この記事は 初心者 C++er Advent Calendar 2015 14 日目の記事です. いきなりですが次のコードを見てください. #include <iostream> struct cat { std::string name; }; void print_name(cat const& neko) // const 参照渡し! { std::cout << "this cat name is " << n</iostream>…

io_service の使い方

この記事は C++ Advent Calendar 2015 14 日目の記事です. 13 日目は okdshin さんの Boost.Computeでグラボを燃やす - クリアボックス でした. 本記事の内容 本記事では io_service をどう使うかについて書きます. 具体的には, io_service の使用モデルを整…

initiating function 内で yield_context を呼べるようになった

Boost 1.58.0 以降では, Asynchronous operation の initiating function (async_write_some など) 内で直接 yield_context の handler の呼び出しが可能になりました. 以前まではどうだったかというと, spawn 外へのコンテキストスイッチ (initiating funct…

GCC 4.9.1 で List-initialization の評価順が直っていた

C++

List-initialization におけるリストの各要素の評価順は左から右に評価されるように規定されています. しかし, GCC 4.9.0 以前では List-initialization でコンストラクタが呼び出される場合は正しい順序で引数が評価されていませんでした. #include <iostream> int f(</iostream>…

Boost 1.59 を GitHub リポジトリのソースからビルド

いつもは zip か, Homebrew でインストールしていたのを使用していましたが, 今回は GitHub から持ってきたのでメモを残しておきます. # boost のトップリポジトリを取得 git clone https://github.com/boostorg/boost.git # 各ライブラリのリポジトリを取得…

Boost.Function を使わない SCOPE_EXIT_ALL

修正(2015-02-22) RVO を無効化した場合, 指定した処理が複数回実行されてしまうのを修正しました. Boost.Scope Exit の実装を覗いてみたら, C++11 (or later) 用の BOOST_SCOPE_EXIT_ALL には Boost.Function が使用されていました. Boost.Function は動的…