ann ist ein Lambda trivia

Wann ist ein Lambda garantiert trivial, wenn überhaupt?

Ich nahm an, dass es trivial wäre, wenn es nur Trivialtypen oder gar nichts erfasst. Ich habe keine Standard-ese, um das zu sichern.

Meine Motivation bestand darin, Code von Visual C ++ 12 auf 14 zu verschieben, und ich stellte fest, dass einige statische Zusicherungen beim Umgang mit Lambdas, die ich für trivial hielt, fehlgeschlagen waren.

Beispiel

#include <type_traits>
#include <iostream>
using namespace std;

int main()
{
    auto lambda = [](){};

    cout << boolalpha << is_trivially_copyable<decltype(lambda)>{} << endl;
}

Dies ergibtfalse on vs140 buttrue in vs120 und klingelte. Ich konnte gcc nicht testen, weil es nicht gcc> = 5 gab. Ich gehe davon aus, dass dies eine Regression in vs140 ist, aber ich bin mir nicht sicher, ob ich mich hier richtig verhalte.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage