Lueskelin Overview of the new C++ eBookia ja törmäsin siellä tämmöiseen.
std::vector<std::future<WordCountMapType>> futures; for (int argNum = 1; argNum < argc; ++argNum) { futures.push_back(std::async([=]{ return wordsInFile(argv[argNum]); })); }
Onko [=]{} alimmalla rivillä lambda vai mitä siellä oikein tapahtuu?
Syntaksi []{koodia} on C++11:ssä lambdafunktion määritys joo, eli luodaan funktio joka kutsuttaessa suorittaa aaltosulkujen välissä olevan koodin.
Yhtäsuuruusmerkki hakasulkeiden välissä tarkoittaa, että lambdafunktion käyttämät ulkoiset muuttujat (eli tässä kohtaa argv ja argNum) kopioidaan arvoina lambdan sulkeumaan. Vastaavasti syntaksi [&]{} tarkoittaa, että arvoja ei kopioida vaan niistä otetaan sulkeumaan vain viitteet.
Jos ei tästä selvinnyt niin kannattaa katsoa wikipediasta C++11:n anonyymit funktiot.
Aihe on jo aika vanha, joten et voi enää vastata siihen.