2006-09-01から1ヶ月間の記事一覧

さよならauto_ptr?

std::auto_ptrとboost::scoped_ptrをまとめてDeprecatedにするunique_ptr(旧名move_ptr)の提案がある unique_ptrの実装 Boost.Interprocess(cvs)にも含まれていてなぜか実装が二つある どちらもちょっとずつ駄目らしく今のところauto_ptr/scoped_ptrは必要な…

ザ・コンパイルタイム・ポリモーフィズム

とうとう答えにたどり着いた?かもしれません Metafunctionの要らない場合です []namespace[] []poost_extension[][] {[] []struct[] []hello[][] { };[][]}[]

template constructor vs copy-constructor

以下のコードはassertion failedとなる kはconst修飾されてないので、(2)が、(1)とのoverload解決に勝利する・・・参照 これが意図したものであることはまずないと思われるので(3)の定義を忘れないようにする コンパイラが暗黙に生成するcopy-constructorで…

iterator_castの力

Boost.RangeExにあるiterator_castは、adaptorからbaseとなったiteratorを取り出すのだが、名前に反してもっと汎用的なものだと思われる baseメンバ関数を介して、複雑に"修飾された"型のオブジェクトから欲しい型のオブジェクトを取り出す shared_ptrやopti…

mutableな一時オブジェクト

constでない参照は一時オブジェクトで初期化できない id:mb2sync:20060727が使えた to_streamはostream_iteratorと同じものです id:mb2sync:20060804のためにconst_castは使えないことに注意 []oven[][]::[][]copy[][]([] []file_range[][]<>([][]"x.txt"[][…

さよならラッパー

気づくのが遅すぎたかもしれない・・・window_ptr, window_ref []inline[] []void[] []enable_window[][]([][]window_ref[] []wnd[][], [][]bool[] []on[][])[] []{[]