Boost String_algo Valor de retorno en FUENTA FALLA
-
27-10-2019 - |
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!
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