Nepřijde mi, že dělám něco špatně. Zaprvé řeším nějaký problém. A samozřejmě, že bych to mohl napsat zdlouhavě a řešit to třeba v runtime, ale proč? Třeba jsem řešil to, jak používat lambda funkce a benefitovat z toho, že lambda funkce mají vnitřní stav. Ona s tím totiž standardní knihovna moc nepočítá, třeba při práci se std::function mi každá kopie vytváří i kopii vnitřního stavu. Ale s vnitřním stavem se počítá, protože máme přece klíčové slovo mutable.
Nebo třeba že lambda funkce je vlastně objekt, ale nemá this.
Protože hodně používám různé callbacky a asynchroní volání, které je realizované lambdo, někdy kvůli vnitřnímu stavu musím místo lambdy napsat třídu, a to je zdlouhavé, kód se stěhuje na jiné místo a nepřehledné, není jasné, kudy kód pokračuje v asynchroním zpracování. Je to víc nepřehledné, než pochopit vnitřní stav. Snažil jsem se nějak řešit tento problém. A to proto, že jakkoliv se zeptam na stack overflow, končím pouze u začátečnických dotazů.
Za druhé, ano, neznám všechny zákoutí práce s param packy, protože třeba vím, že konverze lze napsat do kódu pokud funkci volám, ale nevěděl jsem, že to funguje i pokud definuju parametry funkce. Holt se musím učit.
Takže díky za tu diskuzi.