( kisg | 2011. 01. 21., p – 00:03 )

Ha nem is C++-ra, de egy átírás ráférne, legalábbis a "felhasználói" API-ra mindenképp. Vagy legalább egy korrekt dokumentáció kéne...
Ez sajnos így van...

"Sosem értettem egyébként ezt a C++ SUX hozzáállást C-s projekteknél. Értem én, hogy kivételkezelés meg virtuális fv-ek: broaf, de semmit sem kötelező használni, és pl a konstruktor/destruktor páros elég hasznos tud lenni..."

Egyetértek veled, okosan használt C++-szal kényelmesebb, gyorsabb fejleszteni, mint C-ben. Nem véletlen, hogy az embedded világban a C++ kódok jelentős része még ma is -fno-rtti -fno-exception -nel van fordítva.

Érdemes megnézni az Android C++ kódját:
- nincs benne (szinte) STL
- nincs benne exception
- nincs benne operator overload (nem greppeltem végig, lehet, hogy valahol van :) )
- van viszont smart pointer + refcounting
- vannak benne olyan segédosztályok, mint Thread meg Mutex ami nagyon hiányzik a standard C++-ból.

Ha rendesen minden heapen foglalt objektumot smart pointerekkel használsz + a resource foglalásokat is úgy csinálod, mint pl. a Mutex::Autolock, akkor RTTI meg exception-ök nélkül is nagyon szép, jól karbantartható és robusztus kódot lehet írni.

Ha valamiért C kódot kell írnom, akkor C++ után nagyon kényelmetlen a goto-s resource / hibakezelésre visszaállni.

Üdv,
Gergely

PS: Az igazsághoz hozzátartozik, hogy lehet látni az Android C++ kódban igen randa goto-s hibakezelést is...nyilván "gyorsan" kellett elkészülni...