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

終わらないRange

よく考えるとistream_iteratorのRangeも永遠に入力しつづければ無限なので問題がない 以下のソースコードはこの辺り any_iteratorについては、ここやここ []#include[] []<boost/range.hpp>[] []#include[] []<pstade/oven/functions.hpp>[] []#include[] []<pstade/oven/ranges.hpp>[] []#include[] []<boost/lambda/lambda.hpp>[] []#include[] []<boost/lambda/core.hpp>[]</boost/lambda/core.hpp></boost/lambda/lambda.hpp></pstade/oven/ranges.hpp></pstade/oven/functions.hpp></boost/range.hpp>

template constructor vs copy-constructor part2

以下のコードはtest1でassertion failedとなる (2)は、'T=D'なので、暗黙に生成された(1)とのオーバーロード解決に勝利する test2では、(3)がB型にキャストすることによって(1)を優先するようにしているのでassertion failedにならない 何が問題かと言うと、…

std::distanceとReachable

std::distanceの結果が負になるようなことはあってはいけない ここの204 "or decrements"の意味が不明という話 iterator_facadeで使うdistance_toの引数はreachableとは限らないので注意

const-qualified function?

以下のコードで、(1)は不正 (8.3.5/4) GCC3.4とComeauではコンパイルできる 最新のDraftではconstは無視されるので合法になる?(参照) (2)は何が起こるべきなのか不明 VC++7.1/8とComeauではコンパイル出来る GCC3.4ではコンパイル出来たり出来なかったりす…

where_

cvsに新しいBoost.ConceptCheckとおぼしきものがある 見た目をConceptGCC(提案)らしくしているらしい チェック用のクラスの語尾に"Concept"は付けない whereを満たさないとdiable_ifしたりはしない Metafunctionとマクロのバージョンが用意されている 条件が…