Wie wird eine Vorlage instanziiert?
Es ist eine Übung vonC ++ Primer 5th Edition:
Übung 16.27: Erklären Sie für jede beschriftete Anweisung, was, wenn überhaupt, Instanziierungen passieren. Wenn eine Vorlage instanziiert wird, erklären Sie, warum; Wenn nicht, erklären Sie warum nicht. S.677
template <typename T> class Stack { };
void f1(Stack<char>); // (a)
class Exercise {
Stack<double> &rsd; // (b)
Stack<int> si; // (c)
};
int main() {
Stack<char> *sc; // (d)
f1(*sc); // (e)
int iObj = sizeof(Stack< string >); // (f)
}
Folgendes habe ich versucht:
(ein)Stack<char>
wird instanziiert, aber kein Mitglied davon wird instanziiert.
(b)Stack<double>
wird instanziiert, aber kein Mitglied davon wird instanziiert.
(c)Stack<int>
und sein Standardkonstruktor werden instanziiert.
(d) (e) überhaupt keine Ahnung ...
(f)Stack< string >
wird instanziiert, aber kein Mitglied davon wird instanziiert.
Habe ich recht? Kann mir jemand sagen, wie dieser Code instanziiert wird?