私的コンセプト

コンセプトのドキュメント(とりあえず版)を追加しました。
今日の成果物


Boost.Iostreamsのコンセプトは、Boostのドキュメントのままだと少し変な感じです。
例えば、コンセプトOptimallyBufferedのドキュメントには、型Oのオブジェクトoに対して、

io::optimal_buffer_size(o)

という式が有効ならOptimallyBufferedだと書いてあるのですが、optimal_buffer_size()のドキュメントを見ると、

category_of<T>::type semantics
convertible to optimally_buffered_tag Returns t.optimal_buffer_size().
convertible to filter_tag but not to optimally_buffered_tag Returns default_filter_buffer_size.
otherwise Returns default_device_buffer_size.

となっていて、これではあらゆるフィルタとデバイスがOptimallyBufferedになってしまいます。
もちろん、これは id:y-hamigaki:20060616 で紹介したoperations<T>によるカスタマイズも考慮してのことだとは思いますが、自分の用途には合わないのでより狭義の意味に再定義しています。(id:y-hamigaki:20060705 参照)


あと、コンセプトのリファレンスを書いて気が付いたのですが、テンプレートパラメータから同名のコンセプトへ自動でリンクされるようです。
今後はこれを考慮して書いたほうがよいですね。あんまり長い名前は書きたくないですが。