- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- eBay-es kütyük kis pénzért
- gban: Ingyen kellene, de tegnapra
- sh4d0w: Én és a számítógép
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- MaxxDamage: Vizes Laptop Hűtés? Lehetséges? Igen!
- Argos: Az vagy, amit megeszel
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
dobragab #4087 üzenetére
Köszi szépen a válaszodat. Először is engedd meg, hogy egy hibát javítsak:
static RET fptr_handler(ARGS... args)
{
tl_function(std::forward<ARGS>(args)...);
}helyesen:
static RET fptr_handler(ARGS... args)
{
return tl_function(std::forward<ARGS>(args)...);
}Egyébként szép megoldás a problémára.
Lényegében hasonló, mint amit a szimulációban írtam. Ott globálisan hoztam létre az objektumokat, ezek tfv.-eit pedig free wrapper fv.-eken keresztül hívtam meg (amik a globális objektumokhoz hozzáférnek), és a free fv.-ekre mutató fv. pointert tudom aztán használni callback fv. pointerként.
Lényegében a te megoldásod is hasonló, csak nem globális, hanem (thread_local) static std::function objecteket hozol létre (tl_function), amik tartalmazzák az objektum címét (ez a lambdában kapturált argumentum), és a megfelelő tfv. pointert. Majd ezt a tl_function std::function objectet meghívó fptr_handler statikus wrapper tfv.-nek a címét (mint közönséges pattintott C fv. pointert) adod vissza. A trükk pedig az, hogy a to_fptr function template második argumentuma egy []{} dummy lambda, aminek a típusa mindíg (fordító által generált) egyedi típus, ezért a to_fptr_t class template minden egyes alkalomkor külön-külön példányosul (a dummy lambda aktuális típusával), minden egyes function object-re külön osztályt, és azzal külön fptr_handler fv.-t létrehozva. Szép megoldás, gratula!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Google Pixel 10 Pro XL – tíz kicsi Pixel
- Milyen videókártyát?
- Háztartási gépek
- exHWSW - Értünk mindenhez IS
- NFL és amerikai futball topik - Spoiler veszély!
- Gaming notebook topik
- Apple iPhone 15 Pro Max - Attack on Titan
- Milyen RAM-ot vegyek?
- RC modell földön, vízen, levegőben
- Autós topik
- További aktív témák...
- Xbox Elite Series 2 Kontroller // Számla + garancia //
- Telefon felvásárlás!! Samsung Galaxy A20e/Samsung Galaxy A40/Samsung Galaxy A04s/Samsung Galaxy A03s
- Csere-Beszámítás! Macbook Air 13 2020! I3 / 8GB / 256 SSD. Akksi- 124 Ciklus
- ÁRGARANCIA!Épített KomPhone Ryzen 5 9600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Gamer PC- Számítógép! Csere-Beszámítás! I7 4790K / 16GB DDR3 / RX 5700XT 8GB / 512GB SSD
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest