Typabzugsfehler in der TMap-Vorlage
Als Antwort auf die Abfrage bezüglich eines Abzugsfehlers beim Aufrufen der Testfunktion liegt das Problem in der nicht ableitbarer Kontext, in dem der T-Vorlagenparameter instanziiert wird.
Innerhalb der Testfunktion versucht der Compiler dies Leiten Sie den Typ T basierend auf dem Typ des Parameters tmap_ ab. Da es jedoch möglicherweise mehrere Spezialisierungen der TMap-Vorlage für verschiedene Typen geben könnte (z. B. TMap
Stellen Sie sich eine hypothetische Spezialisierung vor:
template <> struct TMap<SomeType> { typedef std::map<double, double> Type; };
Hierbei Szenario wäre TMap
Der Mangel an Informationen, die dem Compiler zur Verfügung stehen, um eine eindeutige Entsprechung zwischen dem Typ von tmap_ und dem Typ von T herzustellen, führt zu dem gemeldeten Abzugsfehler. Um dieses Problem zu beheben, muss der Typ T beim Aufruf der Testfunktion explizit angegeben werden, um sicherzustellen, dass die richtige Vorlagenspezialisierung ausgewählt wird.
Das obige ist der detaillierte Inhalt vonWarum schlägt die Typableitung für meine TMap-Vorlage in diesem Funktionsaufruf fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!