C++ Ilyenkor mi történik és miért?
auto FN()
{
auto variadic_generic_lambda = [](auto... param) {};
return variadic_generic_lambda;
}
int main()
{
auto t = FN();
t(1, 2, 3, "");
t("", 1, 2 ,3);
return 0;
}
auto FN()
{
auto lambda = [](auto head) { return head; };
return lambda;
}
int main()
{
auto t = FN();
int a = t(1);
const char* b = t("a");
double c = t(3.0);
std::vector<decltype(t)> vt;
vt.push_back(t);
int e = vt[0](1);
const char* f = vt[0]("a");
double g = vt[0](3.0);
return 0;
}
Hogy adhat vissza a t három különböző típust? És milyen vektor jön ilyenkor létre?
Szia!
"Hogy adhat vissza a t három különböző típust? És milyen vektor jön ilyenkor létre?"
Úgy hogy ez egy csodás nyelv :)
Azért tud három különböző típust vissza adni mert az auto kulcsszó miatt a fordító legyártja azt a három függvényt amik a megfelelő típussal térnek majd vissza.
A vektorod meg lényegében egy függvény mutatót tárol a 0. pozícióba, amit így tudsz meghívni: vt[0](valami adat);
Olvasgasd még ezt: [link]
Szuper dolgokat mutat! :)
"Én arra számítottam, hogy le se fordul."
Hát ez túlmutat már kicsit az "olvassunk be egy fájlból és írjuk ki a konzolra" szintű C++-on.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!