[c++] "Vorlage <>" vs "Vorlage" ohne Klammern - was ist der Unterschied?



Answers

Mit Klasse / Struktur,

template <typename T> struct foo {};

Folgendes ist eine Spezialisierung:

template <> struct foo<int>{};

Folgendes ist eine explizite Instanziierung:

template struct foo<int>;
Question

Angenommen, ich habe erklärt:

template <typename T> void foo(T& t);

Worin besteht der Unterschied?

template <> void foo<int>(int& t);

und

template void foo<int>(int& t);

semantisch? Und haben Template-with-No-Brackets und Template-with-Left-Brackets eine andere Semantik in anderen Kontexten?

Verwandt mit: Wie forciere ich, dass eine bestimmte Instanz einer C ++ - Vorlage instanziiert wird?




Links