Wenn ich eine Vorlage Container haben, kann ich eine typedef
verwenden, um mir die Art zum Zeitpunkt der Kompilierung Nachschlag zu lassen:typedef Äquivalent für int
template <typename T>
struct MyList {
typedef T Type;
T get_front() const;
// ...
};
MyList<char> char_list;
MyList<char>::Type front = char_list.get_front();
In diesem Fall Sie char front = char_list.get_front();
stattdessen erklären könnte, aber manchmal kann das sein nützlich (z. B. Vorlagenklassen, die andere Vorlagenklassen enthalten).
In meinem Fall ist die Vorlage einen Typnamen nicht angeben, sondern gibt stattdessen einen int (eigentlich ein std::size_t
):
template <std::size_t N>
struct MyClass {
// ...
};
Gibt es eine äquivalent einen typedef, die ich in der Klasse erklären kann, dass kann ich den Wert N außerhalb der Klasse bekommen? Ist dies ein geeigneter Ort, um eine statische Konstante zu verwenden?
Große answer-- gefunden werden, da dies nur innerhalb Inhouse-Code ist (nicht zugänglich) Ich denke, die static const sollte in Ordnung sein. – user
@Oliver: Stellen Sie nur sicher, dass Sie '& value' niemals ausführen, was implizit passieren kann, wenn Sie' value' als Argument für eine Funktion verwenden, die einen konstanten Referenzparameter verwendet. –
"moderne Compiler" - wie modern muss es sein? –