Komentáře
Přijmout
Tyto hovory nelze „přenést, alespoň ne přímo. gcnew
není klíčové slovo C ++, pochází z „C ++ / CLI“, což je jiný jazyk, který gcc aktuálně nepodporuje. Tato starší SO otázka říká, že tam byl jednou pokus o jeho podporu, ale zdá se, že je mrtvý od roku 2009.
Jediným rozumným způsobem je přenést veškerý spravovaný kód do standardního C ++, pak gcnew
a gcroot
již nebude potřeba.
Odpovědět
Kromě odpovědi DocBrown byste mohli zvážit použití nějaké existující knihovny pro sběr odpadu (např. Boehmovi konzervativci ve GC nebo RavenBrook „s MPS nebo vlastní GC) ve vašem kódu. Podívejte se také na toto .
Používat takový GC nemusí být snadné (možná by to ani nestálo za bolest a mohli byste se rozhodnout používat originální manuální správu C ++ a inteligentní ukazatele bez GC) a určitě si musíte být vědomi technik, konceptů, terminologie a nástrah GC. Přečtěte si tedy příručku GC .
Všimněte si, že byste také mohli zvážit použití některých existujících rámcových knihoven C ++, například jako Qt nebo POCO nebo Boost .
V zásadě byste měli přepsat kód na standardnější C ++ (např. alespoň C ++ 14).
Komentáře
- Postranní poznámka: při přenosu spravovaného kódu na nespravovaný není chybějící GC nejčastěji největším problémem, pokud se vůbec jedná o problém. Najít náhradu za knihovny tříd .NET framework používané programem je.
g++
naclang
by tedy mělo být snadné, jakmile svou práci dokončíte.