Greetings! Charles Torre and I came back with the second episode of Channel 9 Going Native –which is actually episode 1, considering that C++, as a C-like language, starts indexing from 0.
This time we follow up from a recent article that my colleague and friend Sumit Kumar (Program Manager in the Visual C++ team) wrote last week about new IDE features and enhancements that we plan to ship in the next version. You’ll see me searching and finding project assets (source files, classes, etc.) fast with the new Solution Explorer. You will also see the enhanced coloring of source file and how much comprehensible your code looks this way. You’ll also see the more proactive IntelliSense (using some fuzzy logic to quickly filter the list as you type the initials of method names like GetMaxHeight() or get_max_height() –whichever your naming convention). Possibly the best of all, the addition of long claimed code snippets to C++ development in Visual Studio.
Then we picked one of the many topics you guys submitted for us to cover, so we visited Mahmoud Saleh, Visual C++ team engineer. He told us about the C Runtime Library (CRT) and the role itplays related to the C/C++ compiler, the linker and the underlying Win32 APIs. In most of cases we associate the CRT with the implementation of printf() and similar functions, without realizing that even our main(int, char**) function –which we tend to believe that it’s the entry point of our application- it’s actually delegated the control by this “invisible buddy” (the fact that we aren’t aware at most of times about its omnipresence is part of its success: we just don’t need to worry about). Conversely, the executable version of your app doesn’t stop working in the closing bracket (“}”) of your main(), as Mahmoud will tell what happens after the end. Mahmoud also talks about how CRT takes care about memory (like static initializers), security (buffer overruns, etc.) and exception handling, among other duties. You’ll also review the different ways of linking to the CRT from your application, with their pros and cons.
In the last segment, Charles describes his experience at C++ and Beyond, the conference on C++ programming hosted by three luminaries: Scott Meyers (Effective C++, More Effective C++, and Effective STL), Andrei Alexandrescu (Modern C++ Design, C++ Coding Standards –coauthor- and The D Programming Language) and (our) Herb Sutter (Exceptional C++, More Exceptional C++, Exceptional C++ Style and the mentioned C++ Coding Standards). But he doesn’t provide just his impressions: he shows us what a few fellow attendees had to say about the event and the speakers.