2006-03-01から1ヶ月間の記事一覧
なんとstd::equalを呼び出す・・・参照 メンバのequalを呼ぶこと
ずっとこの有名な関数をC++にするとどうなるのか考えていた 今のところの結論、WindowTextはRangeである・・・ダウンロード 実装はただのBoost.ScopedArrayです Boost.BaseFromMemberは意外と使う機会が多い []#include[] []<pstade/tomato/window/window_text.hpp>[] []#include[] []<pstade/oven/sequence_cast.hpp>[]</pstade/oven/sequence_cast.hpp></pstade/tomato/window/window_text.hpp>
一時的なクラスを用意して、戻り値の型の指定を省略できるようにする 使いどころが多くて面白いです・・・参照 xxx_castのような関数にも全部用意してはどうだろう・・・boost::lexical_castの場合 []#include[] []<pstade/lexical_cast.hpp>[]</pstade/lexical_cast.hpp>
前に見つけたBoost.Nullですが、(たぶんコンパイラのバグで)全然動かない IntegralConstantにしようとも思いましたが、結局こうなった []#if[][] !defined(NULLPTR)[] []#define[][] NULLPTR 0[] []#endif[]
ATLTRACEを置き換えたくてこんなものを作ってみた out []#include[] []<pstade/debug.hpp>[] []#include[] []<pstade/napkin.hpp>[] []#include[] []<windows.h>[] []#include[] []<pstade/napkin/dout.hpp>[][]using[] []namespace[] []pstade[][];[][]PSTADE_DEBUG[][]( [][]napkin[][]::[][]ostream[] []my_os[][]([][]napkin[][]::</pstade/napkin/dout.hpp></windows.h></pstade/napkin.hpp></pstade/debug.hpp>…
Boost.Phoenix-2にEvalPolicyという概念があるんですが、戻り値の型がテンプレート仮引数になっている 戻り値の型をユーザーが書かなくてよくなる (ソースが劇的にすっきりする) ライブラリ側はこちらに注意 ちなみに以下のようなコードを本当に使っていた […
Boost.Lambdaにmake_constがあった もっと汎用的にhelp_rvalue_deductionというのがBoost.Phoenix-2にある こちらと関係あるのかもしれない Boost.Phoenix-2のドキュメントは分かりやすいです []#include[] []<boost/test/minimal.hpp>[] []#include[] []<boost/lambda/core.hpp>[] []// make_const[]</boost/lambda/core.hpp></boost/test/minimal.hpp>
これが新しいBoost.Lambdaらしい []#include[] []<boost/test/minimal.hpp>[] []#include[] []<boost/spirit/phoenix/function.hpp>[]</boost/spirit/phoenix/function.hpp></boost/test/minimal.hpp>