SORU
22 EYLÜL 2010, ÇARŞAMBA


Lambda sabit başvuru olarak yakalama?

Lambda ifadesinde sabit başvuru ile yakalamak mümkün mü?

Atama aşağıda başarısız işaretlenmiş, örneğin istiyorum

#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
    string strings[] = 
    {
        "hello",
        "world"
    };
    static const size_t num_strings = sizeof(strings)/sizeof(strings[0]);

    string best_string = "foo";

    for_each( &strings[0], &strings[num_strings], [&best_string](const string& s)
      {
        best_string = s; // this should fail
      }
    );
    return 0;
}

Güncelleme:Bu eski bir soru olarak, eğer bu yardım için C 14 imkanları varsa güncellemek iyi olabilir. C 14 uzantıları bize inş başvuruyla olmayan sabit bir nesneyi yakalamak için izin? (Ağustos 2015)

CEVAP
22 EYLÜL 2010, ÇARŞAMBA


const n3092 olarak: yakalar için dilbilgisi değil

capture:
  identifier
  & identifier
  this

Metin yakalama-kopyalama söz ve referans olarak yakalamak ve sabit-lik herhangi bir söz etmez.

Bana bir kusur gibi geliyor, ama çok yakından standardizasyon süreci takip etmedim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • ehowhome

    ehowhome

    22 NİSAN 2009
  • READ DESCRIPTION NOW!!!!!!!

    READ DESCRIP

    18 ŞUBAT 2009