Tippfehler schlägt auf mysteriöse Weise fehl

9

Warum kann Folgendes nicht abgeleitet werden: R :

%Vor%

Während so ziemlich das "selbe", funktioniert:

%Vor%

Verwendung:

%Vor%

Wie das erste Beispiel 'kompiliert werden muss':

%Vor%

- oder -

%Vor%

Gedanken: Wie im zweiten Snippet zu sehen ist, wird R bereits durch den Rückgabetyp des 'Lambda' bestimmt. Warum gilt das nicht auch für das erste? Selbst mit der Verwendung von ec (was ein anderer Compiler-Hinweis sein sollte), kann nicht abgeleitet werden.

    
leppie 04.06.2012, 15:37
quelle

1 Antwort

4

Ich denke, dass das Problem nicht darin besteht, dass der Compiler, wenn er R für die Funktion CallWithEscapeContinuation nicht ableitet, nicht einen Typ für das Lambda ableitet:

%Vor%

Wenn Sie hingegen den int -Hinweis angeben, kann er daraus ableiten, aus welchem ​​Typ das Lambda stammt und aus der Signatur von CallWithEscapeContinuation .

Wenn Sie nur Action (im Gegensatz zu Action<R> ) haben, ist das Obige irrelevant, da keine Typparameter die möglichen Signaturen des Lambda beeinflussen.

    
Chris Shain 04.06.2012, 16:07
quelle

Tags und Links