我正在閱讀一篇未發表的碩士畢業論文報告,我將就此提供反饋意見。C++有垃圾收集器嗎?
在報告中,他們提到GC在本機C++下,並管理C++。我認爲C++沒有任何標準GC,我錯了還是對嗎? (他們沒有提到Boehm-Demers-Weiser。)
他們在某些條件下使其工作有些問題。他們在一個線程中創建對象,並從另一個線程刪除指針。
我正在閱讀一篇未發表的碩士畢業論文報告,我將就此提供反饋意見。C++有垃圾收集器嗎?
在報告中,他們提到GC在本機C++下,並管理C++。我認爲C++沒有任何標準GC,我錯了還是對嗎? (他們沒有提到Boehm-Demers-Weiser。)
他們在某些條件下使其工作有些問題。他們在一個線程中創建對象,並從另一個線程刪除指針。
託管C++(及其後繼C++/CLI)當然使用.NET垃圾回收來管理資源(雖然本機資源不是垃圾回收,必須像本地C++一樣手動管理)。默認情況下,原生C++沒有這種東西(最接近這個的是智能指針,但這仍然是完全不同的東西),但這並不妨礙您編寫自己的垃圾回收解決方案(或使用third party solution) 。
C++ 0x明確允許實現包含垃圾回收器。 – 2011-02-23 09:50:04
1998/2004的現有C++標準沒有指定垃圾收集器。 即將到來的標準C++ 0x確實指定了一個可選的垃圾收集器API,但實現是另一部分。如上所述,編譯器供應商和第三方都有可用於C++的垃圾收集器。
確實很有趣 – 2011-02-23 10:06:11
C和C++唯一的GC庫是Hans-Boehm library,但據我所知很難設置它。
我對C++下的GC有不同的看法。
看看MCP(開源許可證GPLv3) - 使用C++的GC應該不會比GJC/Mono差。
[TR1](http://en.wikipedia.org/wiki/C%2B%2B_Technical_Report_1)是否包括在內? – sarnold 2011-02-23 09:49:35
@kotlinski請不要打擾你不知道的技術。我從來沒有使用過Managed C++,但它的後繼者 - C++/CLI是.NET生態系統的重要組成部分。 – 2011-02-23 10:43:46
對不起,我不知道它是生態系統的一部分。 – 2011-02-23 10:46:25