Ich versuche, Informationen über Vorlage Schlüsselwort als Disambiguator verwendet, aber es gibt nichts darüber. Wahrscheinlich suche ich falsche Suchbegriffe, aber es gibt nichts wie .template oder -> template im Standard. Google zeigt nur GCC-Probleme von verschiedenen Foren, aber nicht wirklich, wofür es verwendet wird.Vorlage Disambiguator
Code wie das konnte nicht kompilieren ohne Vorlage Schlüsselwort in Zeile 11 (auf GCC), aber ich bin nicht ganz sicher, dass dies entspricht dem Standard.
template<typename B>
struct S1
{
template<typename T> void test() {}
};
template<typename T>
struct S2
{
S2()
{
S1<T>().template test<int>();
}
};
int main()
{
S2<int>();
}
Also meine Frage ist: Warum tut Vorlage Begriff hier verwendet wird, welche Art von Mehrdeutigkeit gibt, ohne das Keyword ist und wo kann ich gelesen, dass (ich würde wirklich Link zu Standard schätzen).
Danke.
@ Prasoon: Ich weiß, dass dort viele Frage, wo die Verwendung des 'template'-Schlüsselwortes die Antwort war, aber ich kann keine Frage direkt finden, die danach fragt. –
@ Space_C0wb0y: Entschuldigung, ich habe meinen vorherigen Kommentar gelöscht. –
Vielleicht möchten Sie auch lesen: http://stackoverflow.com/questions/3786360/confusing-template-error/3786726#3786726 –