No, I never added that Jim. When I originally started out with Matt Pietrek's code from Microsoft System Journal, that was in there, as well as code to process command line strings. Each added about 512 bytes to the final executable. So both add about 1 k. I could add it to my to-do list.
I think the main impediment to obtaining smaller program sizes from C++ revolve around usage of the C++ Standard Library. I believe anytime one attempts to use anything from there it is necessary to build with the /EHsc switch, i.e., enable C++ Structured Exception Handling. I believe that this in itself is one of those things that is going to pull in piles of support code to support this sophisticated functionality. For myself, C style error handling is sufficient, i.e., test within functions for error conditions, and when one occurs exit the function and return an error code either in the return value or through a parameter. Of course, C++ coders will tell you that the C++ Exception Handling mechanism is superior. Perhaps in 500,000 line programs or 5,000,000 line programs it is. For myself, I've never worked on programs of that size.
The fundamental idea underlying my TCLib and its ability to minimize program size is that all of the advantages of C++ over C can be realized if one can see one's way clear to avoiding building against the C++ Standard Library. That's why I had to come up with my own string class, dynamic multi-dimensional array capabilities (which, by the way, utilize templates), etc. At first it was a confusing thing for me to think my way through, as I think its not a mental exercise all C++ coders make to seperate the bare bones C++ language capabilities from those capabilities provided by the standard libraries.
I never started working on this until it became fairly clear to me that the likelihood of a 64 bit native PowerBASIC compiler wasn't so good anymore. I'll be retiring in 9 days and I'm moving from Pennsylvania to Colorado, but once I get there and settled I wouldn't mind trying to work global classes back into TCLib. I assume Pietrek's code works, so it ought to be just a matter of inserting it back in and testing it.