Heim > Artikel > Backend-Entwicklung > Können C-Funktionen „auto“ als Argumenttyp verwenden?
Auto als Argument in C übergeben
Es gibt eine Methode, das Schlüsselwort „auto“ als Argument zu verwenden, wenn es an ein anderes übergeben wird Funktion. Das heißt, Sie können eine Funktion wie folgt definieren:
int function(auto data) { // Does something }
C 20's Einführung von Auto als Funktionsparametertyp
C 20 ermöglicht die Verwendung von „auto“ als Funktionsparametertyp. Betrachten Sie den folgenden Codeausschnitt als Beispiel:
int function(auto data) { // Do something, there are no constraints on data }
Abgekürzte Funktionsvorlagen
Zusätzlich kann „auto“ als abgekürzte Funktionsvorlage verwendet werden. Dies ist eine spezielle Instanz einer nicht einschränkenden Typbeschränkung oder mit anderen Worten ein „unbeschränkter automatischer Parameter“. Ein „eingeschränkter automatischer Parameter“ hingegen würde Konzepte verwenden und wie folgt aussehen:
void function(const Sortable auto& data) { // Do something that requires data to be Sortable // Assuming there is a concept named Sortable }
Erklärung aus der C-Spezifikation
Die C-Spezifikation definiert „Platzhaltertypspezifizierer“ wie folgt:
type-constraint<sub>opt</sub> auto type-constraint<sub>opt</sub> decltype ( auto )
Solche Platzhaltertypspezifizierer bezeichnen einen Platzhaltertyp, der später durch Abzug von einem Initialisierer ersetzt werden kann. Bei Verwendung in der „decl-specifier-seq“ einer Funktionsdeklaration oder eines Lambda-Ausdrucks gibt ein Platzhaltertypbezeichner der Form „type-constraintopt auto“ an, dass es sich bei der Funktion um eine abgekürzte Funktionsvorlage handelt (gemäß 9.3.3.5).
Das obige ist der detaillierte Inhalt vonKönnen C-Funktionen „auto“ als Argumenttyp verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!