Warum kann der Compiler diese generischen Typen nicht auflösen?

8

Wenn ich eine Methode als solche habe:

%Vor%

Wenn ich jetzt habe:

%Vor%

Dann kann der Compiler die zu wählenden Generika nicht auflösen und dies schlägt fehl:

%Vor%

Und Sie müssen explizit angeben, welche Generika als solche verwendet werden sollen:

%Vor%     
Cornelius 22.02.2013, 07:14
quelle

1 Antwort

5

Bei der generischen Methodentypinferenz werden nicht absichtlich von den Integritätsbedingungen abgezogen. Stattdessen werden Ableitungen von den -Argumenten und den formalen Parametern gemacht, und dann werden die Argumente des abgeleiteten Typs gegen die Einschränkungen geprüft.

Für eine detaillierte Diskussion einiger Design-Probleme rund um Constraints und Methodensignaturen, darunter einige Dutzend Leute, die mir sagen, dass ich falsch liege zu denken, dass das existierende Design sinnvoll ist, siehe meinen Artikel zu diesem Thema:

Ссылка

Dies ist eine exakte Kopie von Eric Lipperts Antwort auf eine ähnliche Frage .
Ich entschied mich, es zu kopieren, weil diese Frage prägnanter und klarer ist.

    
Daniel Hilgarth 23.05.2017, 11:45
quelle

Tags und Links