Boost.Range

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出ないかな?