Ú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!
- Elektromos rásegítésű kerékpárok
- OLED TV topic
- Víz- gáz- és fűtésszerelés
- Brogyi: CTEK akkumulátor töltő és másolatai
- EAFC 26
- exHWSW - Értünk mindenhez IS
- A fociról könnyedén, egy baráti társaságban
- Vezeték nélküli fülhallgatók
- Milyen videókártyát?
- Canon MILC: EOS R és M topik
- További aktív témák...
- Újszerű Acer Aspire A515 - 15.6"FHD IPS - i5-1335U - 16GB - 512GB SSD - Win11
- Nagyon kedvező áron!Eladó Synology DS923+ Alza Gari 2027.10.23-ig
- Karácsonyra ps4 / ps5 collectors edition és egyéb ritka játékok
- Kedvező Ár! MacBook Pro M1 Pro 14.2 Istyle gari 2026.07.27-ig
- Intel Core i9-9900K, Gigabyte Z390 AORUS Master, Noctua NH-D15
- Apple iPhone SE 2020 64GB, Kártyafüggetlen, 1 Év Garanciával
- Redmi 15C / 4/128GB / Kártyafüggetlen / 12Hó Garancia / BONTATLAN NULL Perces
- Bomba ár! Lenovo X1 Carbon 1st : i5-3GEN I 8GB I 240SSD I 14" FHD I mDP I Cam I W10 I Gari!
- Fujitsu LIFEBOOK E449 i3-8130U 12GB 512GB 14" FHD 1 év garancia
- HIBÁTLAN iPhone 13 Pro 128GB Silver -1 ÉV GARANCIA - Kártyafüggetlen, MS3666 100% Akkumulátor
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest

