- sziku69: Fűzzük össze a szavakat :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- M0ng00se: Hardvert áruhitelre?
- gban: Ingyen kellene, de tegnapra
- eBay-es kütyük kis pénzért
- ricshard444: Fényképező ? Telefon helyett
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- amanoba: Zakuszkarecept Puskás Csabától, a Borkonyha Étterem head séfjétől
- bitpork: MOD Júni 28- Augusztus 2- szombat jelen állás szerint.
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
jattila48 #3186 üzenetére
A másik programomban teljesen hasonló kódra a VS ezt fordította:
auto pimpl=hc.pimpl;
00426AAF mov eax,dword ptr [ebp-1Ch]
00426AB2 mov ecx,dword ptr [eax]
00426AB4 mov dword ptr [ebp-28h],ecx
.
.
.
auto sc=hc.f(1);
00426ABF push 1
00426AC1 lea eax,[ebp-74h]
00426AC4 push eax
00426AC5 mov ecx,dword ptr [ebp-1Ch]
00426AC8 call HandleClass::f (04113CFh)
.
.
.
auto sc2=(pimpl->*hc.mfp)(2);
00426AD7 mov esi,esp
00426AD9 push 2
00426ADB lea eax,[ebp-1D4h]
00426AE1 push eax
00426AE2 mov ecx,dword ptr [ebp-28h]
00426AE5 call dword ptr ds:[42B8A0h]Látható, hogy a mfp-én keresztüli hívás előtt nincs befordítva a "fölösleges" kód. Egyébként a kétfajta hívás kódja teljesen hasonló, csak az első call direkt címzéssel, a második pedig indirekt címzéssel történik. Viszont a második call már közvetlenül a BodyClass f tfv.-ét hívja, vagyis valóban nincs forwarding call overhead (ami egyébként elég jelentős). Fórumokon (pl. StackOverflow) azt olvastam, hogy a pimpl-et nem lehet enélkül megcsinálni. Ezek szerint mégis. Ez azért működik, mert az incomplete type-ok member pointerei is forward deklarálhatók.
-
EQMontoya
veterán
válasz
jattila48 #3186 üzenetére
Simán elképzelhetőnek tartom, hogy compiler bugot fogtál.
Először azt hittem, ott lehet benne buktató, hogy egy static ptr úgy kap értéket, hogy akitől kapja, az member volt, ezért mondjuk move-olódhatna máshová, de ez már utána nem befolyásolja a staticot, mert közvetlenül mutat, nem ezen keresztül, tehát nem okoz gondot.
Ú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!
- Szeged és környéke adok-veszek-beszélgetek
- Windows 10
- Linux kezdőknek
- Milyen TV-t vegyek?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- sziku69: Fűzzük össze a szavakat :)
- Milyen billentyűzetet vegyek?
- Építő/felújító topik
- A partnerektől függ, hogy lesz-e Arc csúcs-VGA az aktuális generációban
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- További aktív témák...
- Garancia! GAMER PC! Ryzen 5600X / RTX 3070 / B550 / 32GB 3200MHz /1Tb + 512Gb NVMe / 600w!
- iPhone SE2 64GB fekete, gyönyörű újszerű állapotban, 3db van, 85% 92% és 100% akkuval
- iPhone SE2 64GB 82% piros, saját dobozzal
- Apple iPhone 13 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- iPhone 12 128GB, fekete vagy fehér színben, újszerű állapotban
- Szerezd meg a tökéletes házat most!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Beszámítás! Sony PlayStation 5 825GB SSD lemezes konzol extra játékokkal garanciával hibátlan
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- Csere-Beszámítás!AMD Asztali számítógép PC Játékra! R5 5600/ RX 6700XT 12GB / 16GB DDR4 / 500GB SSD
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest