为什么在使用boost :: split时必须使用boost :: is_any_of

why must use boost::is_any_of when using boost::split?

本文关键字:boost is of any split 为什么      更新时间:2023-10-16

为什么使用boost ::使用boost :: split?

时必须使用boost :: is_any_of

当我使用时:boost::split(split_res, someStr, ".");

我有一个错误。

为什么?

因为API是这样设计的(例如,它允许考虑到诸如语言环境之类的事物的动态谓词)。

但是我怎么知道?我有一个奇怪的错误

您可以阅读文档。如果您不正确地使用它,那是编译器的工作。

这对我来说似乎太复杂

不要使用它。用您喜欢的简单接口将其包装在功能中。

活在coliru

namespace my {
    template <typename R = std::vector<std::string> >
        R split(std::string const& input, char delim = '.') {
            R v;
            boost::split(v, input, boost::algorithm::is_any_of(std::array<char,1>{delim}));
            return v;
        }
}