Angenommen, ich habe eine std::tuple
:Wie kann ich herausfinden, ob ein Element in einem Tupel existiert?
std::tuple<Types...> myTuple;
// fill myTuple with stuff
Jetzt will ich, wenn func
kehrt gilt für jedes Element in der Lambda, wo func
einige Lambda, zB:
auto func = [](auto&& x) -> bool { return someOperation(x); }
Wie kann ich tun Dies? Beachten Sie, dass Types...
möglicherweise groß ist, sodass ich nicht jedes Mal über alle Elemente iterieren möchte.
Du könntest [den Tup auspacken le für den Aufruf einer variadic-template-Funktion] (http://stackoverflow.com/questions/687490/how-do-i-pand-a-tuple-into-variadic-template-functions-arguments), die jedes Argument überprüfen. –
Scheint ein Duplikat von [dies] zu sein (http://stackoverflow.com/questions/1198260/iterate-over-tuple). – m8mble
@ m8mble Ich habe eine Zeile hinzugefügt, um zu verdeutlichen, warum das anders ist (im Grunde ist es der Unterschied zwischen 'for_each' und' any_of' - stoppt auf dem Element, wenn Sie es finden). – arman