質問

Boost :: String_algoの最初の検索を使用して、最初のスペースをラインの最初のスペースを見つけたいです:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");

ただし、スペースが見つからない場合にこれが戻ってくることを示すドキュメントには何も見つからないようです。 token_range.end()をline.end()または何かに対してテストする必要がありますか?

ありがとう!

役に立ちましたか?

解決

テストするだけだと思います token_range.empty(), 、 このような:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (!token_range.empty())
{
    // Found a a match
}

boost::iterator_range また、ブール変換オペレーターがあるため、empty()関数呼び出しをドロップして、次のことを書き込むこともできます。

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
    // Found a a match
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top