ekspresi constexpr lambda di C++

Visual Studio 2017 versi 15.3 dan yang lebih baru (tersedia dalam /std:c++17 mode dan yang lebih baru): Ekspresi lambda dapat dinyatakan sebagai constexpr atau digunakan dalam ekspresi konstan saat inisialisasi setiap anggota data yang diambil atau diperkenalkan diizinkan dalam ekspresi konstan.

    int y = 32;
    auto answer = [y]() constexpr
    {
        int x = 10;
        return y + x;
    };

    constexpr int Increment(int n)
    {
        return [n] { return n + 1; }();
    }

Lambda secara constexpr implisit jika hasilnya memenuhi persyaratan constexpr fungsi:

    auto answer = [](int n)
    {
        return 32 + n;
    };

    constexpr int response = answer(10);

Jika lambda secara implisit atau eksplisit constexpr, dan Anda mengonversinya menjadi penunjuk fungsi, fungsi yang dihasilkan juga constexpr:

    auto Increment = [](int n)
    {
        return n + 1;
    };

    constexpr int(*inc)(int) = Increment;

Baca juga

Referensi Bahasa C++
Objek Fungsi di Pustaka Standar C++
Panggilan Fungsi
for_each