„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Können Templatparameter in C ++ 20 -Konstalfunktion von Funktionsparametern abhängen?

Können Templatparameter in C ++ 20 -Konstalfunktion von Funktionsparametern abhängen?

Gepostet am 2025-04-17
Durchsuche:395

Can Template Parameters Depend on Function Arguments in C  20 Consteval Functions?

konstvale Funktionen und Vorlagenparameter, die von Funktionsargumenten abhängen

In c 17 kompile-time.

c 20 canteval functions

c 20 führt Constval-Funktionen ein, die zur Kompilierzeit bewertet werden müssen, wodurch die Laufzeitbeschränkung entfernt werden muss. Es bleibt jedoch die Frage: Ist dies die Parameter von Vorlagen jetzt von Funktionsargumenten abhängen?

keine Zulagen für abhängige Vorlagenparameter

trotz der Einführung von Constval -Funktionen sind die Antwort nein. Das Papier erkennt an, dass die Parameter nicht als Kernkonstante ausdrücklich behandelt werden sollen. Dies ist auf potenzielle Tipps zu Diskrepanzen zurückzuführen, wie das Beispiel im Papier zeigt:

consteval int sqrsqr(int n) {
  return sqr(sqr(n)); // Not a constant-expression at this  point,
}                     // but that's okay.

Daher werden die Funktionsparameter niemals als konstante Ausdrücke angesehen und verhindern, dass Vorlagenparameter von ihnen abhängig sind.

Freigabeerklärung Dieser Artikel wird reproduziert unter: 1729672748 Wenn ein Verstoß vorliegt, wenden Sie sich bitte an [email protected], um ihn zu löschen.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3