Was ist der Unterschied zwischen typedef und using in C++? Was soll man wählen?
Hallo zusammen! Ich lerne C++ und bin auf zwei Arten gestoßen, um Aliase für Typen zu erstellen: das gute alte `typedef` und das neue `using` aus C++11. Sie scheinen dasselbe zu tun, aber ich habe gehört, dass `using` bevorzugt wird. Könnt ihr erklären, worin der grundlegende Unterschied besteht?
Hier ist ein einfaches Beispiel mit `typedef`:
```cpp
typedef unsigned long ulong;
typedef int (*func_ptr)(double, char);
typedef std::vector int_vector;
```
Und dasselbe mit `using`:
```cpp
using ulong = unsigned long;
using func_ptr = int(*)(double, char);
using int_vector = std::vector;
```
Vom Syntax her erscheint mir `typedef` verwirrender, besonders bei Funktionszeigern. Aber gibt es funktionale Unterschiede? Zum Beispiel habe ich gehört, dass `using` mit Templates funktioniert, `typedef` aber nicht. Könnt ihr Beispiele geben, wann `using` überlegen ist, und ob man `typedef` überhaupt noch in neuem Code verwenden sollte? Danke im Voraus!
<<>>
Hauptunterschied: Template-Aliase
Der wichtigste und grundlegendste