2010-04-15 12 views
6

Wie verwendet man Lambda-Ausdrücke in C++/CLI?Lambdas in C++/CLI

+1

Was CLI meinen Sie? – wRAR

+0

Ein C++, das in Visual Studio verwendet wird (in dem ich. NET-Bibliotheken verwenden kann) ich Port-System linq und jetzt möchte ich eine Funktion verwenden, die Lambda-Ausdrücke auf C# wie WindowsFormsSynchronizationContext.Post – Xaver

Antwort

3

In C# sind Lambdas wirklich nur syntaktischer Zucker, um Delegaten zu erstellen. C++/CLI supports delegates, so können Sie immer noch alle die gleichen Sachen in C++/CLI tun, die Sie in C# tun können, Sie können nur nicht die raffinierte Syntax verwenden.

+0

Ich stimme Ihnen zu, aber ich habe bereits Programm schreiben auf C++/CLI – Xaver

0

Gemäß What's New in Visual C++ 2010 können Sie Lambda-Ausdrücke nur in VS2010 verwenden.

+0

Was ist, wenn ich vs-2008 habe? Wie kann ich WindowsFormsSynchronizationContext.Post verwenden? – Xaver

+1

Ich glaube nicht, dass er über C++ 0x Lambdas fragt, fragt er über die Verwendung von .NET-Lambdas aus C++/CLI –

+1

Ja, ich frage über die Verwendung von .NET-Lambdas aus C++/CLI. – Xaver

1

Ich habe diese Antwort von einem Microsoft employee on the vc blog auf eine Frage in Bezug auf C++ 0x Lambda und verwalteten Code Interoperabilität gefunden:

Sie nur eine Variable mit einem verwalteten Typ als Argument an ein Lambda passieren kann - Sie können keine Variable mit einem verwalteten Typ erfassen. Wir haben nicht vor, Lambdas und Delegierte zu "fusionieren".