Ponieważ wyrażenia lambda wymagają wersji GCC> 4.4: jaki jest najbardziej elegancki lub najszybszy (ale nie zbyt "brudny") sposób przenoszenia kodu zawierającego kilka wyrażeń lambda ze zmiennymi odniesionymi do kod pre-C++ 0x?Eleganckie portowanie wyrażeń lambda w C++
Czy można to zrobić w sposób półautomatyczny za pomocą szablonów/makr?
+1. Użyłem boost :: lambda trochę, ale w pewnym sensie uznałem to za dość niewygodne. Nie można bezpośrednio używać metod na argonach lambda. Na przykład nie możesz zrobić 'sort (v.begin(), v.end(), _1.size() <_2.size())' ale możesz zrobić 'sort (v.begin(), v. end(), f (_1)
Od wersji Boost 1.47 (która jest obecnie w wersji beta i zostanie wydana w ciągu najbliższych kilku tygodni), Boost.Lambda jest oficjalnie przestarzała i zastąpiona przez [Boost.Phoenix v3] (http: // /beta.boost.org/libs/phoenix/index.html), więc Boost.Phoenix jest lepszą rekomendacją w tym momencie. – ildjarn
@Aaron: Boost.Phoenix zawiera leniwy [opakowania do wszystkich standardowych kontenerów bibliotecznych i algorytmów] (http://beta.boost.org/libs/phoenix/doc/html/phoenix/modules/stl.html), więc wyglądają jak "sort (v.begin, v.end(), size (_1)
ildjarn