SORU
19 EYLÜL 2011, PAZARTESİ


Neden't İ C 11 lambda vektör yaratabilir mi?

Lambda bir vektör oluşturmak için çalışıyordum, ama başarısız oldu:

auto ignore = [&]() { return 10; };  //1
std::vector<decltype(ignore)> v;     //2
v.push_back([&]() { return 100; });  //3

*2,* 5 * satır için. Ama satır#3 compilation error verir:

hata: arama için eşleşen bir işlev':: std vector<main()::<lambda()^< . ::push_back (() ana::<lambda()>)'

İşlev işaretçisi veya işlev nesneleri vektör vektör istemiyorum. Ancak, saklanması işlevi nesneleri vektörgerçeklambda ifadeleri, benim için iyi olmaz. Bu mümkün mü?

CEVAP
19 EYLÜL 2011, PAZARTESİ


Her lambda farklı ise aynı imza bile türü vardır. Eğer böyle bir şey yapmak istiyorsan çalışma zamanı std::function gibi şifrelenmiş bir kap kullanmalısınız.

örneğin:

std::vector<std::function<int()>> functors;
functors.push_back([&] { return 100; });
functors.push_back([&] { return 10; });

İşlev işaretçisi veya işlev vektör vektör istemiyorum nesneler.

Evet, yüz adamın geliştirici bir ekip ile yüksek maaşlı güzel bir iş tüm hayallerim geliştirmek istiyorum, ama bu da olmayacak. Oh, ve aynı zamanda gerçekten yapamam beri yemek ve temizlik yapabilen çok cazip bir eş istiyorum.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bogdan Gabriel

    Bogdan Gabri

    5 Aralık 2006
  • ELPRESADOR

    ELPRESADOR

    21 HAZİRAN 2008
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010