Heim > Backend-Entwicklung > C++ > Kann „using' „typedef' in C 11 für Nicht-Vorlagentypen vollständig ersetzen?

Kann „using' „typedef' in C 11 für Nicht-Vorlagentypen vollständig ersetzen?

Barbara Streisand
Freigeben: 2024-12-23 18:57:13
Original
328 Leute haben es durchsucht

Can `using` Completely Replace `typedef` in C  11 for Non-Template Types?

Kann „using“ „typedef“ in C 11 ersetzen?

In C 11 kann „using“ jetzt Typaliase ähnlich wie „typedefs“ definieren:

typedef int MyInt; // Equivalent to:
using MyInt = int;
Nach dem Login kopieren

Während „Verwenden“ ursprünglich zur Unterstützung von Vorlagen eingeführt wurde typedefs:

template< class T > using MyType = AnotherType< T, MyAllocatorType >;
Nach dem Login kopieren

Dies wirft die Frage auf, ob es subtile Unterschiede zwischen „typedef“ und „using“ beim Umgang mit Nicht-Vorlagentypen gibt.

Aliasing-Verhalten und Auswirkungen

Sowohl „typedef“ als auch „using“ erstellen einen Alias ​​oder neuen Namen für eine vorhandenen Typ, anstatt einen neuen Typ zu definieren. Dies bedeutet, dass Konvertierungen zwischen dem Alias ​​und dem ursprünglichen Typ implizit sind.

Daher gibt es hinsichtlich ihres Aliasing-Verhaltens keinen Unterschied zwischen „typedef“ und „using“. Beide Konstrukte erzeugen schwache Aliase, die auf denselben zugrunde liegenden Typ verweisen.

Das obige ist der detaillierte Inhalt vonKann „using' „typedef' in C 11 für Nicht-Vorlagentypen vollständig ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage