Pregunta

Quiero encontrar el primer espacio en una línea usando Boost :: String_algo's Find First:

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

Sin embargo, parece que no puedo encontrar nada en los documentos que diga lo que esto devuelve si no encuentra un espacio. ¿Necesito probar token_range.end () contra line.end () o algo así?

¡Gracias!

¿Fue útil?

Solución

Creo que deberías probar token_range.empty(), como esto:

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

boost::iterator_range También tiene un operador de conversión de bool, por lo que incluso puede dejar caer la llamada de función vacía () y simplemente escribir:

const boost::iterator_range<std::string::iterator> token_range = boost::find_first(line, " ");
if (token_range)
{
    // Found a a match
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top