Heim  >  Artikel  >  Backend-Entwicklung  >  Können C-Funktionen „auto“ als Argumenttyp verwenden?

Können C-Funktionen „auto“ als Argumenttyp verwenden?

DDD
DDDOriginal
2024-11-17 06:12:03641Durchsuche

Can C   Functions Utilize

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn