なぜboost :: is_any_ofを使うべきですか?なぜboost :: is_any_ofをboost :: splitを使用する必要がありますか?
私が使用:boost::split(split_res, someStr, ".");
を私はエラーを取得します。
なぜboost :: is_any_ofを使うべきですか?なぜboost :: is_any_ofをboost :: splitを使用する必要がありますか?
私が使用:boost::split(split_res, someStr, ".");
を私はエラーを取得します。
なぜですか?
APIはそのように設計されているため(たとえば、ロケールのようなものを考慮に入れた動的な述語を使用できるため)。
しかし、どうすればわかりますか?私は奇妙なエラーを持っています
あなたはdocumentationを読むことができます。それを間違って使用すると、コンパイラの仕事があなたに伝えます。
これは
がそれを使用しないでください、私にとっては複雑すぎるようです。あなたが好きなよりシンプルなインターフェースを持つ関数にラップします。
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;
}
}
は、ラッパー関数を示すサンプルを追加しました。http://coliru.stacked-crooked.com/a/f4bf196fdf58988d – sehe
ややシンプルで:boost :: split(v、input、[delim](char c){return delim == c;}); ' – zett42
@ zett42私は、しかし、あなたは少なくともいくつかの設定で正しいです:http://coliru.stacked-crooked.com/a/ca90a86f057c2233とhttp://coliru.stacked-crooked.com/a/1a1ace3196277df2 – sehe
[ツアー]を読み、[MCVE] 3番目のパラメータは、 '後押しpredicatあるよう –
に見える::スプリット(split_res、someStrを、[]を提供するために時間がかかるしてください(char ch){return ch == '。';}); ' –