2011-12-01から1ヶ月間の記事一覧

Boost.Phoenix で range-based for

phx::for_each より楽に使えるものをと. https://gist.github.com/1540409 void revival_example() { using boost::phoenix::arg_names::_1; using boost::phoenix::arg_names::_2; using boost::phoenix::local_names::_x; int array[5] = { 1, 2, 3, 4, 5…

std::common_type の問題点

C++

SFINAE に使えない http://d.hatena.ne.jp/gintenlabo/20110420/1303288950 メタプログラミングをする上で不便ですね. 必ずしも「引数の型全てが変換される型」を返すとは限らない struct A { A(int) {} template <class T> A(T) = delete; }; char c = '$'; std::co</class>…

Range を使おう

C++

これは C++11 Advent Calendar 2011 の参加記事 (15日目) です. この記事では「Iterator ではなく Range を使おう」という話をします.既に何度も言われている話ではありますが,私も一度書いてみたかったのでこの機会に書きます.でもそんなに新しいことは…

Egg の楽しみ

これは Boost Advent Calendar 2011 の参加記事 (11 日目)です. 今日はせっかくの機会なので,個人的に関心の高い Egg について,ちょっと書いてみたいと思います.Egg を知らない人も多いと思いますので,ここでは入門・解説を書くのではなく,どのような…

何が lvalue で何が rvalue なのか

C++

こういう記事も必要かもしれないと思いました.内容はタイトルそのままです. はじめに はじめに,と書きましたがこの項は飛ばしても問題ないです. まず "lvalue" とか "rvalue" とかいうものが何についての概念なのかということですが,これらは C++ の "…