Kommentit
Vastaa
Näitä puheluja ei voi siirtää, ainakaan suoraan. gcnew
ei ole C ++ -avainsana, se on peräisin C ++ / CLI-kielestä, joka on eri kieli, jota gcc ei tällä hetkellä tue. Tämä vanhempi SO-kysymys sanoo, että kerran yrittänyt tukea sitä, mutta se näyttää olevan kuollut vuodesta 2009 lähtien.
Ainoa järkevä tapa tähän on siirtää kaikki hallittu koodi standardiin C ++, sitten gcnew
ja gcroot
ei enää tarvita.
Vastaa
DocBrown ”-vastauksen lisäksi voit harkita jonkin olemassa olevan roskakorikirjaston käyttöä (esim. Boehmin konservatiivit ve GC tai RavenBrook MPS tai oma GC) koodissasi. Katso myös tämä .
Tällaisen GC: n käyttäminen ei ehkä ole helppoa (se ei ehkä edes kannata kipua, ja voit päättää käyttää aitoa C ++ – manuaalista hallintaa ja älykkäitä osoittimia ilman GC: tä), ja sinun on varmasti oltava tietoinen GC: n tekniikoista, käsitteistä, terminologiasta ja ongelmista. Joten lue GC-käsikirja .
Huomaa, että saatat myös harkita joidenkin olemassa olevien C ++ -kehyskirjastojen, kuten kuten Qt tai POCO tai Boost .
Sinun tulisi periaatteessa kirjoittaa koodi normaalimmaksi C ++: ksi (esim. vähintään C ++ 14).
Kommentit
- Sivuhuomautus: kun siirretään hallittua koodia hallitsemattomaksi, puuttuva GC ei useimmiten ole suurin ongelma, jos se on lainkaan ongelma. Etsi korvike ohjelman käyttämille .NET-kehysluokan kirjastoille.
g++
tilaanclang
pitäisi olla helppoa, kun olet tehnyt työn.