Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX


A Preview of Visual C++ .NET 2003

Visual C++ .NET is not only about .NET. It targets both traditional Windows-based and new .NET-connected applications and components.

y the time you are reading this Microsoft will be very close to shipping Visual Studio .NET 2003 and its associated language products—including Visual C++. February 2003 marks an exciting anniversary for this mainstay developer tool: it is now 10 years since the product's original launch as Visual C++ 1.0 in 1993. A lot has changed in those 10 years (including the name, which since the last release is officially 'Visual C++ .NET'), and I'm happy to take this opportunity to show you some of the cool updated features in the latest and greatest version. Everett
Perhaps you know the pending release by its Microsoft codename, Everett. Everett involves a lot of things for a lot of different people; indeed, Visual Studio meets the demands of an awfully diverse set of developers. For the Visual C++ Product Team, Everett represents a major update to our favorite code base, one in which we've enabled several significant features representing literally years of development effort. From the outset our primary goal has been to make you, a developer and user of the tool, as well as the larger C++ community, be pleasantly awed by the significance of this release.

Lay on the Proof
There are four primary categories of features I'm going to discuss in this article: ISO C++ Conformance, Optimizations, Code Security, and Windows Forms. Each has huge implications in the code you'll write, but that said, it is difficult to rank the categories in order of importance or significance for all C++ developers combined. That C++ enables you to undertake so many different types of development means that some of you will have specialized in areas that aren't serviced by a particular feature. One feature we all share in common is the language syntax itself. One of the loudest complaints I've heard over the years about Microsoft's C++ compiler is that it is absolutely lousy at compiling C++ code that uses advanced template features. (Some well-known C++ gurus have even goaded me with comments such as, "Visual C++ isn't even a C++ compiler!") Not only does this deter developers at large from writing somewhat portable C++ code, it precludes those developers from using some of the more sophisticated features the language has to offer. Additionally, the MS compiler prevents developers from compiling and using some of the more interesting and powerful C++ libraries that have emerged in the last couple of years.

ISO C++ Conformance
Visual C++ 6.0 conforms to the ISO C++ Standard at a roughly 80% level. It lacks support for advanced template features, and incorrectly implements certain core features such as For-Loop scoping. Visual C++ .NET 2002 (the release of one year ago) elevates the conformance number to roughly 90%, which is great but clearly still short of a world-class C++ compiler.

Visual C++ .NET 2003 passes several popular compiler test suites with a mark of 98% or better.
Visual C++ .NET 2003 passes several popular compiler test suites with a mark of 98% or better. It implements the entire ISO C++ Standard save for a few relatively controversial features including export and exception specifications. Dependent name lookup also remains absent, (Microsoft has plans to implement this in a later release). However, a 98% score means that a Visual C++ developer can now build popular modern C++ libraries like Boost, Blitz, and Loki, sans code changes—a feat few compilers can assert (pun intended).Additionally, Visual C++ developers can now structure their own code to benefit from partial template specialization, partial ordering of function templates, user-defined conversion templates, and more. (See Sidebar: C++ and the .NET Framework)

Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



Thanks for your registration, follow us on our social networks to keep up-to-date