Boost

Boost.MPLでBrainf*ckのプログラムをコンパイル時に動かしてみた

C++のテンプレートメタプログラミングライブラリ「Boost.MPL」について勉強中.新しいものを勉強する時はとりあえずそれを使ってBrainf*ckのインタプリタを作るのが学習法の定石なので,早速Boost.MPLを使ってBrainf*ckのインタプリタを書いた. ソース コン…

user defined tagsを用いたBoost.BimapとBoost.Foreachを組み合わせて使う

どの型をtypedefしてどれをBoost.Foreachに渡せばいいのかよく分からなかったのでメモ. #include <iostream> #include <boost/foreach.hpp> #include <boost/bimap/bimap.hpp> #include <boost/bimap/multiset_of.hpp> using namespace std; struct name {}; struct place {}; int main(int argc, char const* argv[]) { using namespace boost</boost/bimap/multiset_of.hpp></boost/bimap/bimap.hpp></boost/foreach.hpp></iostream>…

C++でコンテナの初期化・要素追加が手軽にできるBoost.Assign

ヘッダー boost/assign.hpp できること コンテナの初期化・要素追加が手軽にできる. 使用例 前準備 #include <boost/assign.hpp> using namespace boost::assign; vector 簡単. // 初期化 vector<int> v = list_of(1)(2)(3); // 末尾への要素の追加(push_back) v += 4, 5, 6; // v</int></boost/assign.hpp>…

C++でforeachみたいなことができるBoost.Foreach

ヘッダー boost/foreach.hpp できること C++で他の言語にあるようなforeachっぽいことができるようになる. 使用例 BOOST_FOREACHを使ってコンテナの各要素にアクセスする場合の例. std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); BOOST_</int>…

抑えておきたいと思ってるBoost C++ライブラリ

ここをちょっと眺めてみて最低限把握しておこうと思ったものを列挙.既に把握しているものも含む. 文字列 format lexical_cast regex, xpressive spirit string_algo tokenizer スマートポインタ shared_ptr weak_ptr 入出力 filesystem スレッド thread 数…