Boost

Boost.Serialization - BOOST_CLASS_VERSION

以下のコードを書いたとする. namespace foo { class bar { // ... private: // serialize の実装 }; BOOST_CLASS_VERSION(bar, 1); } すると、以下の様なエラーが大量に出てくる. error: 'foo::boost::**' has not been declaredどうやらこれはBOOST_CLASS_…

Boost.Log 追記モード・ユーザー定義の severity

Boost.Logはファイルに書き出せるわけですが、追記モードも可能です。 ついでに、自分で定義した severity を書きだす方法もどーぞ。 #include <boost/log/utility/setup/file.hpp> #include <boost/log/utility/setup/common_attributes.hpp> #include <boost/log/trivial.hpp> #include <boost/log/attributes.hpp> #include <boost/log/expressions.hpp> #include </boost/log/expressions.hpp></boost/log/attributes.hpp></boost/log/trivial.hpp></boost/log/utility/setup/common_attributes.hpp></boost/log/utility/setup/file.hpp>

Boost.勉強会 #12 大阪に行って来ました

はじめに 寝屋川市の大阪電気通信大学でBoost.勉強会 #12 が開催されました。 僕は発表者として行きましたが、今回もC++erがたくさん集っていたようです。 ちなみに初参加だったので、少し緊張しました。発表の順番とかタイトル一覧はこちら Togetterのまと…

mpl::equalに渡すところをstd::is_sameにしてしまった

ちょっとハマったのでメモ。 ある日、以下の様なコードを書いてました。 typedef mpl::vector_c<int, 1, 2, 3> foo; typedef mpl::transform<foo, mpl::plus<_1, mpl::int_<1>>>::type bar; typedef mpl::vector_c<int, 2, 3, 4> expected; int main() { BOOST_STATIC_ASSERT(( std::is_same<bar, expected>::value )); } てっきり mpl::t</bar,></int,></foo,></int,>…

Boost.Contract の出力先を変更する

あけましておめでとうございます。今年もよろしくお願いします。さて、新年一発目の記事はタイトルにあるとおりです。 そのコードが以下になります。 //main.cc #include <contract.hpp> #include <boost/exception/all.hpp> #include <iostream> #include <fstream> class my_exception : public boost::exception, pub</fstream></iostream></boost/exception/all.hpp></contract.hpp>…

Boost.Contract その2 - C++ Advent Calender 2012

その1の続きです。 宣言と実装の分離 基本構文はだいたい押さえましたね。しかし、実際に使うとなると大事なことを忘れています。 このまま行くと「あれ?そういえば宣言と実装分けられないのかな?」となるのは確実です。 Boost.Contractではそれが可能です…

Boost.Contract その1 - C++ Advent Calender 2012

これは C++ Advent Calender 2012 の3日目の記事です。ーBoost.Contract 0.4.1が最新です。(2012/12/03現在) はい、契約だからってま○どマギネタとか出てくるんじゃないかなーって期待していたそこのアナタ!残念ながら使い回されすぎて使いにくいため、そ…