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

  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • kylelandry

    kylelandry

    9 AĞUSTOS 2007
  • olinerd

    olinerd

    23 AĞUSTOS 2007