Когда лямбда тривиальна?

Когда лямбда гарантированно будет тривиальной, если вообще?

Я предположил, что если он захватывает только тривиальные типы или ничего, это будет тривиально. У меня нет никакого стандарта, чтобы поддержать это все же.

Моя мотивация заключалась в том, чтобы переместить некоторый код из Visual C ++ с 12 на 14, и обнаружил, что некоторые статические утверждения не выполняются при работе с лямбдами, которые я считаю тривиальными.

Пример:

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

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

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

Это производитfalse на vs140 ноtrue в vs120 и лязг. Я не мог проверить gcc из-за отсутствия gcc> = 5. Я ожидаю, что это регрессия в vs140, но я не уверен в правильном поведении здесь.

Ответы на вопрос(1)

Ваш ответ на вопрос