标签: boost-adaptors

升压范围适配器,构成一个集合

我想编写一个 boost 适配器放在适配器链的末尾以创建一个集合,如下所示:

set<string> s = input | filtered(...) | transformed(...) | to_set;
Run Code Online (Sandbox Code Playgroud)

使用方法 3.1,我编写了下面的代码,该代码似乎按预期工作:

namespace detail
{
    struct to_set_forwarder
    {
    };
};

template <class R> inline auto operator|(R& r, detail::to_set_forwarder)
{
    return set<R::value_type>(r.begin(), r.end());
}

template <class R> inline auto operator|(const R& r, detail::to_set_forwarder)
{
    return set<const R::value_type>(r.begin(), r.end());
}

namespace
{
    const auto to_set = detail::to_set_forwarder();
}

void F()
{
    vector<string> input{ "1", "2", "3" };
    auto result = input
        //| boost::adaptors::filtered([](const auto& _) { return …
Run Code Online (Sandbox Code Playgroud)

c++ boost boost-range boost-adaptors

5
推荐指数
1
解决办法
1567
查看次数

标签 统计

boost ×1

boost-adaptors ×1

boost-range ×1

c++ ×1