Boost C++ Libraryのお勉強その11
Boost.Integer
C99でstdint.hが追加になってるけど、現行のC++にはないのでboostにありますよとか、互換性の為のもの。
Boost.Interprocess
UN*Xの世界でIPCとか言ってるもの。プロセス生成自体が色々面倒なので飛ばす。
Boost.Interval
数値の範囲同士を計算するクラス。
#include <iostream> #include <boost/numeric/interval.hpp> int main(void) { boost::numeric::interval < int > a(1, 2); boost::numeric::interval < int > b(3, 4); boost::numeric::interval < int > c = a + b; std::cout << c.lower() << ", " << c.upper() << std::endl; return 0; }
4, 6
Boost.Intrusive
要素側がコンテナのデータを保持するもの。
リストのデストラクタが何かするらしく、要素とリストを同じスコープに入れてるとダメ。
#include <iostream> #include <algorithm> #include <boost/intrusive/list.hpp> class Dummy : public boost::intrusive::list_base_hook <> { private: int data; public: Dummy(int d) : data(d) {} void view(void) { std::cout << data << std::endl; } }; int main(void) { Dummy a(1); Dummy b(2); { boost::intrusive::list < Dummy > list; list.push_back(a); list.push_back(b); list.front().view(); list.back().view(); } return 0; }
1 2