ist es in C++ möglich, einen Alias der Template-Klasse zu erstellen (ohne Parameter anzugeben)?Typedef (Alias) einer generischen Klasse
typedef std::map myOwnMap;
funktioniert nicht.
Und wenn nicht, gibt es einen guten Grund?
ist es in C++ möglich, einen Alias der Template-Klasse zu erstellen (ohne Parameter anzugeben)?Typedef (Alias) einer generischen Klasse
typedef std::map myOwnMap;
funktioniert nicht.
Und wenn nicht, gibt es einen guten Grund?
In C++ 98 und C++ 03 typedef
nur während eines vollständigen verwendet werden können:
typedef std::map<int,int> IntToIntMap;
Mit C++ 0x ein neues glänzend Syntax typedef
zu ersetzen:
using IntToIntMap = std::map<int,int>;
die auch template
Aliasing unterstützt:
Hier gehts :)
Diese Funktion wird in C++ 0x, dem Vorlagenalias, eingeführt. Es wird wie folgt aussehen:
template<typename Key, typename Value>
using MyMap = std::map<Key, Value>
Vorlage Typedefs werden nicht in der C++ 03-Standard unterstützt. Es gibt Workarounds, aber:
template<typename T>
struct MyOwnMap {
typedef std::map<std::string, T> Type;
};
MyOwnMap<int>::Type map;
Ich denke, das Beste, was Sie tun können, ist 'mit std :: map;' zu importieren 'map' in den lokalen Namespace. –