Wpis z mikrobloga

Próbuję. lambda przyjmująca jako parametr funkcję przyjmująca wskaźnik do wydedukowanego typu, zwracająca wskaźnik do tablicy wskaźników do funkcji zwracających wskaźnik do tablicy intów. Lambda zwraca wskaźnik do tablicy wskaźników do funkcji zwracających tablicę intów.
@Helmans:

$
to poprawna nazwa zmiennej w cpp

Close, but no cigar.

w/g cdecl

int(*(*(*((*X)()))[])())[]
to declare X as pointer to function returning pointer to array of pointer to function returning pointer to array of int

czyli parametrem jest wskaźnik na funkcję przyjmującą zero argumentów i zwracającą wskaźnik do tablicy wskaźników do funkcji zwracających wskaźnik do tablicy intów.

Typ zwracany ok.
@KrzaQ2: no ja jestem uwalony na borlandzie i tutaj takie rzeczy nie przechodzą. Dlatego nie wydaje mi się, że jest to standardowe zachowanie. Ale może się mylę :)
@deekox: Masz na myśli

[]((int(*(*(*((*$)()))[])())[])->int(*(*(*)[])())[]) { return $?$():0; }(0);
?

Jeśli tak to nic dziwnego, bo syntax lambdy wygląda w tym przypadku tak:

[](argumenty) -> zwracany_typ { ciało; }
, więc onawiasowanie

[]((argumenty) -> zwracany_typ) { ciało; }
jest bez sensu