) in C-Funktionsheadern? " />
Pfeiloperatoren (->) in Funktionsüberschriften verstehen
Der betreffende Code führt den Pfeiloperator (->) in der Funktionsüberschrift ein:
template <typename T, typename T1> auto compose(T a, T1 b) -> decltype(a + b) { return a+b; }
Diese Syntax bezieht sich auf die in C 11 eingeführte alternative Funktionsdeklarationssyntax. Sie bietet eine Alternative zur herkömmlichen Methode zur Angabe der Rückgabetyp:
return-type identifier (argument-declarations...)
Funktionsdeklarationssyntaxen
Die beiden Funktionsdeklarationssyntaxen in C 11 sind:
Traditionell Syntax:
<return-type> <identifier> (<argument-declarations...>)
Alternative Syntax:
<auto> <identifier> (<argument-declarations...>) -> <return-type>
Bestimmung des Rückgabetyps mit Dectype
Der Pfeiloperator (->) ermöglicht die Ableitung Der Rückgabetyp basierend auf den Argumenttypen mit decltype ermöglicht es uns, den Typ eines Ausdrucks anzugeben, ohne ihn explizit anzugeben.
Im gegebenen Beispiel bestimmt decltype(a b) den Rückgabetyp basierend auf dem Ausdruck a b. Der Operator - > gibt an, dass der Rückgabetyp der Typ des Ausdrucks ist.
C 14 Update
C 14 führt eine weitere Syntaxvereinfachung ein:
<auto> <identifier> (<argument-declarations...>)
Dies ist zulässig, wenn die Funktion vor der Verwendung vollständig definiert ist und alle Rückgabeanweisungen auf denselben Typ ableiten. Allerdings ist das - > Die Syntax bleibt nützlich, um Funktionskörper in Quelldateien für in Headern deklarierte öffentliche Funktionen auszublenden.
Das obige ist der detaillierte Inhalt vonWelchen Zweck hat der Pfeiloperator (->) in C-Funktionsüberschriften?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!