Sometimes those "old-style stack-based objects" have their distinct advantages over the newer class types. For example, using one in local scope does not mean you have to have a call to allocate some memory to hold the class instance, with a try..finally statement to make sure it gets freed. You can also easily create an array of them. You can initialize that array to zero with one call to FillChar. And the list goes on. Borland call them deprecated. I call them useful.