2016-06-05 9 views
2

Ich war überrascht, dass die C++ 14 arbeitet in zu sehen:Auto-Trailing-Rückgabetyp?

auto b() -> auto 
{} 

In C++ 11 I error: invalid use of 'auto' erhalte den Fehler.

Wie funktioniert dieser Code?

Antwort

2

Die Kapsel Zusammenfassung: in C++ 14 kann der Rückgabetyp eines Lambda (oder eine Funktion, in den meisten Fällen) als gegeben werden, und dann Compiler herauszufinden, was der tatsächliche Rückgabetyp auf der return-Anweisung basiert von der Lamba/Funktion.

In diesem Fall wird nichts zurückgegeben, daher ist der Rückgabetyp void.

+0

Ist eine so deklarierte Funktion identisch mit 'auto function()' ohne den nachfolgenden Rückgabetyp? – Kundor

+0

@Kundor, Ja, ist es. – chris