Generisches Lambda-Argument für std :: pair

Ich versuche zu sehen, ob dies im generischen Lambda von C ++ 14 möglich ist, aber ich finde keinen richtigen Weg, es auszudrücken (oder vielleicht ist es nicht möglich). Das vereinfachte Beispiel lautet:

auto confirmOperation = [](auto pr){
  assert(pr.second);
};

Die Idee ist, dass, wenn Sie es ein @ übergebstd::pair bei dem diesecond ist einbool (z. B. was von @ zurückgegeben wiremplace Funktionen), kann es auf diesen Bool schauen.

Wenn dies stattdessen ein Template-Parameter wäre, könnte ich das @ explizit anzeigpair mit den Typen des Paares als generisch, aber ich denke nicht, dass das mit einem Lambda möglich ist? Daher markiere ich stattdessen das gesamte Argument als generisch, und daher scheint der Compiler nicht in der Lage zu sein, daraus zu schließen, dass ich ihm die Rückgabe des @ einer Map übergebemplace().

Wie geht das?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage