espressioni lambda constexpr in C++
Visual Studio 2017 versione 15.3 e successive (disponibile in /std:c++17
modalità e versioni successive): un'espressione lambda può essere dichiarata come constexpr
o usata in un'espressione costante quando l'inizializzazione di ogni membro dati che acquisisce o introduce è consentita all'interno di un'espressione costante.
int y = 32;
auto answer = [y]() constexpr
{
int x = 10;
return y + x;
};
constexpr int Increment(int n)
{
return [n] { return n + 1; }();
}
Un'espressione lambda è implicitamente constexpr
se il risultato soddisfa i requisiti di una constexpr
funzione:
auto answer = [](int n)
{
return 32 + n;
};
constexpr int response = answer(10);
Se un'espressione lambda è implicitamente o esplicitamente constexpr
e la si converte in un puntatore a funzione, anche la funzione risultante è constexpr
:
auto Increment = [](int n)
{
return n + 1;
};
constexpr int(*inc)(int) = Increment;
Vedi anche
Riferimenti al linguaggio C++
Oggetti funzione della libreria standard C++
Chiamata di funzione
for_each
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per