- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- iPhone topik
- Google Pixel topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Samsung Galaxy S25 FE - fenséges, felejthető vagy felesleges?
- Apple Watch
- iOS alkalmazások
- Samsung Galaxy S23 Ultra - non plus ultra
- Közelebb van a Galaxy TriFold startja, mint gondoltuk
- One mobilszolgáltatások
Új hozzászólás Aktív témák
-
jattila48
aktív tag
válasz
jattila48 #3184 üzenetére
A "fölösleges" kód akkor keletkezik, ha handle_class.h-ban a BodyClass incomplete type-ként forward deklarálva van. Ha beinkludolom a teljes body_class.h-t, akkor "szép" kódot generál. Ekkor persze nincs értelme a pimpl-nek. Úgy tűnik, hogy a forward deklarációval nincs elég információja a BodyClass osztályról, hogy a pimpl és az mfp alapján meghatározza a BodyClass f tfv.-ének valódi címét. Mintha a pimpl-et akarná különböző információk alapján igazítani, ahogy a this-t szokta igazítani a thunk kód többszörösen örökölt osztályok esetén. Jó lenne, ha a forward deklarációban meg lehetne mondani, hogy a BodyClass teljesen közönséges osztály, nem örökölt senkitől (főleg nem többektől) és nincs virtuális tfv.-e (még emiatt is lehet ez az igazítás). Akkor talán nem generálná ezt az ilyen osztályokra amúgy tényleg fölösleges igazító kódot. Ilyet sajnos tudtommal nem lehet a C++-ban. Egyébként a kódban valószínűleg csak cím hibás, mégpedig a
004116D6 cmp dword ptr ds:[4168B4h],0
sorban a 4168B4. Amikor rosszul fut, akkor ez a cím unicode sztringekre mutat, vagyis nyilvánvalóan rossz. Amikor jól fut, akkor különböző globális konstansok lehetnek itt és környékén (ha jól fut, akkor 0). Mégsem a const deklarációtól függ, hogy jó-e vagy nem, mert újra buildeléskor const-tal is elromlott. Talán a linker lesz a hibás. Egyébként az LLVM erre a kódra assertion failed-del elszáll, és kéri, hogy a hibajelentést küldjem be. Csak a gcc tudta minden gond nélkül buildelni. -
MageRG
addikt
válasz
jattila48 #3184 üzenetére
Nem értek annyira a C++ programozáshoz, de nekem fura hogy egy static memberbe akarsz belepakolni egy másképp példányosodó valamit.
A HandleClass::mfp közös az összes HC-ben, ugyanazt a BodyClass példány memberét hívja.
De a HandleClass::f meg egy-egy külön BodyClass példány membert hív, ami a konstruktorban jön létre.
Vagyis a két hívás *vára nem ugyanazt csinálja.
Akkor lenne ugyanaz, ha a *pimpl member is statikus lenne.De ez csak az én "két centem".
Ú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!
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- TP-LINK routerek
- AMD Navi Radeon™ RX 6xxx sorozat
- OLED TV topic
- Spotify
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- WD My Cloud NAS
- Épített vízhűtés (nem kompakt) topic
- Gitáros topic
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- REDMAGIC ASTRA Gamer tablet OLED kijelzővel - 16 GB / 512 GB
- ÚJ GARIS iPhone 16 Pro Max 256GB Black Titanium Független
- Sapphire Nitro+ 6700XT 12G - 6 hónap garanciával
- iPhone 15 pro natúr titán 256 GB független
- Új DDR5 Gamer PC i7 12-14700KF-ig/RTX 5060 + 11 Féle VGA/500Gb - 2Tb SSD/16-32Gb Ram 2-4Év Gar
- BESZÁMÍTÁS! MSI B760 i7 13700K 32GB DDR4 2TB SSD RTX 4080 16GB be quiet! 500DX Seasonic 750W
- Apple iPhone 13 Pro Alpine Green ProMotion 120 Hz, Pro kamerák 128 GB-100%
- iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3426, 95% Akkumulátor
- iKing.Hu - Apple iPhone 14 Stílusos megjelenés, megbízható teljesítmény
- Samsung Galaxy S24 Ultra 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest