12
Bu denedim:statik değişkeni lambda ile başlatmak mümkün mü?
#include <map>
int main() {
static std::map<int,int> myMap = [](){
std::map<int,int> myMap;
return myMap;
};
}
hatası:
<stdin>: In function 'int main()':
<stdin>:8:3: error: conversion from 'main()::<lambda()>' to non-scalar type 'std::map<int, int>' requested
Ve evet, ben karınca çalıştığını ancak lambda'lar bu nesneleri başlatılamıyor için başka bir 'normal' fonksiyonu oluşturabilir biliyoruz yol.
Sanırım lambda bildirimi içinde '-> std :: map' eksik. –
theV0ID
@ theV0ID, dönüş ifadesinden çıkarılabiliyorsa, dönüş türü bir lambda gerekli değildir (burada olduğu gibi). (Yan not: Burada olduğu gibi parametre listesi boşsa, ayrıca isteğe bağlıdır. Bu, aşağıdaki kullanılarak yazılabilir: "statik otomatik myMap = [] {return std :: map();}(); ') –