是否有split_copy或某种快捷方式

时间:2019-02-05 15:18:32

标签: c++ boost

有人知道boost::split的快捷方式吗?那

std::vector<std::string> args;
boost::split(args, argsString, boost::is_any_of("\t "), boost::token_compress_on);

成为

auto const args = boost::split(args, argsString, boost::is_any_of("\t "), boost::token_compress_on);
or
auto const args = boost::split<std::vector>(args, argsString, boost::is_any_of("\t "), boost::token_compress_on);

与之基本相同,例如trim-trim_copy的一个。

1 个答案:

答案 0 :(得分:1)

据我所知,Boost中没有捷径。 就我个人而言,我为split写了一个简单的包装器,因为与您遇到的问题相同:

template <typename RangeT, typename PredicateT>
std::vector<std::string> split(RangeT& Input, PredicateT Pred, 
                               boost::algorithm::token_compress_mode_type eCompress = boost::token_compress_off)
{
   std::vector<std::string> toReturn;
   boost::split(toReturn, Input, Pred, eCompress);
   return toReturn;
}

Demo