Question

Why it doesn't work in C++/CLI ?

_list->Remove(_list->Find(x => x.Inode == 2));

I received an error error C2065: 'x' : undeclared identifier

Was it helpful?

Solution

@Hans Passant's comment is the answer, so I'm just pasting it here:

C++/CLI doesn't support lambda expressions. The language was frozen in 2005, no new bells and whistles were added to it since then. You'll need to use a delegate explicitly. C++11 got lambdas but they are not compatible with C++/CLI. – Hans Passant

OTHER TIPS

As Hans Passant commented, C++/CLI doesn't support lambda notation. If you need to use the Find method it can be done by creating your own delegate and invoking it with a new instance of

_list->Find(gcnew Predicate<T>(gcnew &MyDelegate(params)))

Here's a link to a snippet that I used: Custom List::Find() Method in C++/CLI

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top