Aceste apeluri nu pot fi portate, cel puțin nu direct. gcnew
nu este un cuvânt cheie C ++, este din „C ++ / CLI”, care este o limbă diferită care nu este acceptată în prezent de gcc. Această întrebare SO mai veche spune că a existat odată ce a încercat să-l susțină, dar pare a fi mort din 2009.
Singura modalitate rezonabilă pentru aceasta este de a transporta tot codul gestionat în C ++ standard, apoi gcnew
și gcroot
nu vor mai fi necesare.
În plus față de răspunsul DocBrown , ați putea lua în considerare utilizarea unor biblioteci existente de colectare a gunoiului (de ex. Conservatorii lui Boehm veți GC sau MPS RavenBrook sau propriul GC) în codul dvs. Vedeți și aceasta .
Este posibil să nu fie ușor să folosiți un astfel de GC (s-ar putea să nu merite nici măcar durerea și puteți decide să utilizați management manual C ++ original și indicatoare inteligente fără niciun GC) și cu siguranță trebuie să fiți conștient de tehnicile, conceptele, terminologia și capcanele GC. Deci, citiți Manualul GC .
Observați că ați putea lua în considerare și utilizarea unor biblioteci cadru existente C ++, precum ca Qt sau POCO sau Boost .
Practic, ar trebui să vă rescrieți codul în mai multe standard C ++ (de exemplu, cel puțin C ++ 14).
Comentarii