oven::uniqued

Boostネタも尽きてきたのでPStade.Ovenでも調べていこうと思います。


uniquedはソート済みの範囲をユニーク(重複なし)にするRangeアダプタです。
sorted(ソートするRangeアダプタ)と組み合わせて使用します。

#include <iostream>
#include <boost/foreach.hpp>
#include <pstade/oven/as_c_str.hpp>
#include <pstade/oven/sorted.hpp>
#include <pstade/oven/uniqued.hpp>

#define foreach BOOST_FOREACH

using namespace pstade::oven;

int main()
{
    foreach (char c, as_c_str("314123")|sorted|uniqued)
    {
        std::cout << c << std::endl;
    }
}
1
2
3
4

ちなみにas_c_strはnull終端文字列をRandom Access Rangeにするために使用しています。

foreach (char c, std::string("314123")|sorted|uniqued)

としたらVC9 SP1で落ちました。GCC 4.4では動いた。



【参考】

pstade::oven::as_c_str

pstade::oven::sorted

pstade::oven::uniqued