Das Potenzial von Template Auto freisetzen: Vorteile in C 17
Die Einführung von Template
Natürliche Erweiterung von Auto für die Vorlageninstanziierung
auto wurde Wird häufig für Variablendeklarationen verwendet und bietet Typableitungen basierend auf dem zugewiesenen Wert. Die Erweiterung von „auto“ auf Vorlagenparameter vereinfacht die Vorlageninstanziierung weiter, indem der Typ des Parameters automatisch anhand seines Werts bestimmt wird. Dadurch entfällt die Notwendigkeit einer expliziten Typspezifikation und bietet eine präzisere und intuitivere Syntax.
Bequeme und explizite Typableitung
Die Verwendung von „auto“ in Vorlagenparametern ermöglicht die Typableitung auch für Nicht-Typ-Vorlagenparameter. Beispielsweise erforderte die folgende Konstantenvorlage bisher ausführliche Typdeklarationen:
template <typename Type, Type value> constexpr Type constant = value;
Mit der Vorlage
template <auto value> constexpr auto constant = value;
Der Compiler leitet jetzt automatisch ab der Typ vom dem Wert zugewiesenen Wert, wodurch der Code besser lesbar und weniger fehleranfällig wird.
Erweiterte Variadic-Vorlage Handhabung
Vorlage
template <auto ... vs> struct HeterogenousValueList {}; using MyList1 = HeterogenousValueList<42, 'X', 13u>;
Ebenso lassen sich homogene Wertelisten prägnant schreiben:
template <auto v0, decltype(v0) ... vs> struct HomogenousValueList {}; using MyList2 = HomogenousValueList<1, 2, 3>;
Fazit
Vorlage
Das obige ist der detaillierte Inhalt vonWie verbessert das „Template' von C 17 die Verwendung von Template-Parametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!