|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
[C++0x] Bug di Visual Studio 2010
Mi è capitato di scrivere questo codice semplice semplice:
Codice:
for_each(a.begin(),a.end(), [&](const A & aa) { for_each(aa.B().begin(),aa.B().end(), [&](const B & bb) { ... }); }); Poi trovo questo: http://connect.microsoft.com/VisualS...ons-lose-scope Insomma tocca attendere il primo SP per usare a pieno le lambda in Visual Studio... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
speriamo non riprendano i viziacci che avevano fino alla versione '97 altrimenti ci sarà da sgobbare notti intere a fare i cacciavitari cercatori di bug
![]() |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
Codice:
void test() { class Foo {}; string str = "pappappero"; for_each(str.begin(), str.end(), [=] (char ch) { Foo foo; // erroreh!! // ... }); } Codice:
void test() { class Foo {}; string str = "pappappero"; class Functor { public: void operator () (char ch) { Foo foo; // errore? // ... } } f; for_each(str.begin(), str.end(), f); } |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
|
Non e' normale, perche' se usi la lambda non hai piu' l'istanza dell'oggetto con cui interagire con l'ambiente. E in effetti lo standard prevede di specificare con quali variabili interagire (oppure, come nel caso di tommino, specificare tutte le variabili, usando [&]).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:30.