
Edward Diener wrote:
Also, for people looking for a runtime envrironment for C++, they can look >at Ch.
Or CERN.ROOT.CINT project. Either way we are looking at GC in C++ from the wrong direction. I like to know and be able to determine where the memory allocation deallocation occurs. When the constructor and destructor is called using RAII, however, this doesn't mean I shouldn't use GC. GC is supposed to release unused memory, not to call the destructors of objects; although it does on most implementations. [example bool g(int); for(int i=0; i<10000; i++) { // allocate a memory of size = sizeof(Foo) // then construct an instance of Foo on that memory gc_ptr<Foo> f(new (gc) Foo()); // if g(i) == true, delete the memory if( g(i) ) operator delete(f, gc); } // delete all of the objects. GC::collect(); example] The distinction is between construction/destruction of objects and allocation/deallocation of memory. We let GC to perform allocation/deallocation of memory, while we allow ourselves optionaly to take control of construction/destruction of the objects allocated on that memory. This distinction is so important while everyone ignores :D -- Kasra