Boost.Rangeで遊んでみる.
#include <functional> #include <algorithm> #include <boost/range.hpp> // 1.31のリリースには入ってない.(CVSには入ってる) #include <iostream> char const *str[] = {"jkl", "abc", "ghi", "def"}; struct ntcts_less // ntcts: Null Terminated Char TypeS : public std::binary_function<char const *, char const *, bool> { bool operator()(char const *lhs, char const *rhs) const { return std::lexicographical_compare( boost::begin(lhs), boost::end(lhs), boost::begin(rhs), boost::end(rhs)); } }; int main() { std::sort(boost::begin(str), boost::end(str), ntcts_less()); std::copy(boost::begin(str), boost::end(str), std::ostream_iterator<char const *>(std::cout, "\n")); }
上はBoost.Rangeのうち,ntcts(Null Terminated Char TypeS, Null終端文字列)と組み込みの配列に対して,Boost.Rangeが動作することを確認したもの.問題は某所から勝手に拝借(というか某所の問題見てBoost.Range使うこと思いついた).これはまぁ使えるか.個人的にはSTLコンテナやiteratorのpairに対するBoost.Rangeの役割に期待してるんだけど・・・.
はよ,1.32出ないかな?