упростите простой код C++ — что-то как Python любой

Прямо сейчас у меня есть этот код:

bool isAnyTrue() {
    for(std::list< boost::shared_ptr<Foo> >::iterator i = mylist.begin(); i != mylist.end(); ++i) {
        if( (*i)->isTrue() )
            return true;
    }

    return false;
}

Я использовал Повышение здесь и затем но я не мог действительно помнить простой способ записать это несколько как, я, возможно, запишу это в Python, например:

def isAnyTrue():
    return any(o.isTrue() for o in mylist)

Есть ли какая-либо конструкция в STL/повышении для записи этого более или менее как это?

Или возможно эквивалент этому Коду Python:

def isAnyTrue():
    return any(map(mylist, lambda o: o.isTrue()))

Главным образом я задаюсь вопросом, существует ли кто-либо существующий anyall) эквивалентный в Повышении / STL все же. Или почему нет (потому что это кажется довольно полезным, и я использую его довольно часто в Python).

5
задан Albert 8 August 2010 в 14:49
поделиться