为什么在使用boost :: split?
时必须使用boost :: is_any_of我使用时:boost::split(split_res, someStr, ".");
我收到错误。
答案 0 :(得分:1)
为什么?
因为API是以这种方式设计的(例如,它允许动态谓词考虑像locale这样的事情)。
但我怎么知道?我有一个奇怪的错误
您可以阅读documentation。如果你错误地使用它,编译器的工作就是告诉你它。
对我来说这似乎太复杂了
不要使用它。使用您喜欢的更简单的界面将其包装在一个函数中。
<强> Live On 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;
}
}