T kann nicht aus Vorlage
Im bereitgestellten Code tritt beim Versuch, die Vorlage abzuleiten, ein Fehler auf Argument T für die Testfunktion. Um zu verstehen, warum, ist es wichtig, sich mit dem Konzept des „nicht ableitbaren Kontexts“ zu befassen.
In der Vorlagendefinition von TMap definieren Sie einen Alias namens „Type“ als std::map
Stellen Sie sich das folgende Szenario vor: Wenn TMap eine Spezialisierung für SomeType hätte, wobei Type als std::map< definiert ist ;double, double>, wie würde der Compiler den Typ SomeType allein anhand des Wissens bestimmen, dass TMap
Wenn außerdem eine andere Spezialisierung von TMap für OtherType existiert, bei der der Typ wiederum std::map
Es ist wichtig zu bedenken, dass der Compiler keine Annahmen über die Beziehung treffen kann zwischen den in der Vorlagendefinition verwendeten Typargumenten. Daher kann der Compiler in solchen nicht ableitbaren Kontexten das Vorlagenargument T nicht automatisch ableiten.
Das obige ist der detaillierte Inhalt vonWarum kann der Compiler „T' in „test(TMap::Type)' nicht ableiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!