


Können Funktionsparameter aufgrund von Consteval-Funktionen vorlagenabhängig sein?
Oct 23, 2024 pm 05:46 PMKönnen Consteval-Funktionen Vorlagenparameter aktivieren, die von Funktionsargumenten abhängig sind?
Definieren Sie in C 17 eine constexpr-Funktion, die eine Konstante zur Kompilierungszeit zurückgibt mag logisch erscheinen, ist aber verboten. Der Compiler fordert Ausführungsanweisungen zur Laufzeit und verhindert so die Instanziierung von Vorlagen mit solchen Funktionen.
C 20 führt Konstruktionsfunktionen ein und stellt deren Auswertung zur Kompilierungszeit sicher. Damit erwarteten viele, dass diese Einschränkung verschwinden würde und Code wie folgt möglich wäre:
1 2 3 |
|
Die Antwort ist jedoch immer noch ein klares Nein.
Trotz der möglichen Änderungen des Papiers , bleibt die Tatsache bestehen, dass Nicht-Template-Funktionsdefinitionen nur einmal typisiert werden. Das Zulassen eines solchen Codes würde möglicherweise die Deklaration von Variablen mit nicht ODR-freundlichen Typen wie std::integral_constant<int, i> ermöglichen, was höchst unerwünscht ist.
Das Papier impliziert auch, dass Parameter nicht behandelt werden sollten als zentrale konstante Ausdrücke. Ein Beispiel veranschaulicht dies:
1 2 3 |
|
Zusammenfassend lässt sich sagen, dass sich Funktionsparameter aufgrund möglicher Typinkonsistenzen nicht zu konstanten Ausdrücken entwickeln.
Das obige ist der detaillierte Inhalt vonKönnen Funktionsparameter aufgrund von Consteval-Funktionen vorlagenabhängig sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

GULC: C -Bibliothek von Grund auf neu gebaut

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?
