En este momento, tengo este código:simplificar C++ código sencillo - algo así como pitones cualquier
bool isAnyTrue() {
for(std::list< boost::shared_ptr<Foo> >::iterator i = mylist.begin(); i != mylist.end(); ++i) {
if((*i)->isTrue())
return true;
}
return false;
}
he utilizado Boost aquí y entonces, pero realmente no podía recordar ninguna forma sencilla de escribir algo así como yo tal vez escribo en Python, por ejemplo:
def isAnyTrue():
return any(o.isTrue() for o in mylist)
¿hay alguna construcción en STL/Boost para escribir más o menos así?
O tal vez un equivalente a este código Python:
def isAnyTrue():
return any(map(mylist, lambda o: o.isTrue()))
Sobre todo me gustaría saber si hay alguna existente any
(y all
) equivalente en Boost/STL todavía. O por qué no (porque parece bastante útil y lo uso con bastante frecuencia en Python).
@sth: ¿Cómo es esta solución? –
Boost tiene un foreach ('BOOST_FOREACH'). – Albert
@Albert: Sí, lo hace. Pero incluso en ese caso, debería preferir las llamadas de algoritmo a los bucles explícitos. –