This is a guide to moving your Visual C++ programs from Managed Extensions for C++ to Visual C++ 2005. For a checklist summary of syntactic changes, see Managed Extensions for C++ Syntax Upgrade Checklist.
C++/CLI represents a dynamic component programming paradigm extension to the ISO-C++ standard language. There are a number of significant weaknesses in Managed Extensions, which we feel are corrected in the new language design. This document provides an enumerated listing of the Managed Extensions for C++ language features and their mapping to Visual C++ 2005 where such a mapping exists, and points out those constructs for which no mapping exists.
In This Section
- Outline of Changes
-
A high-level outline for quick reference, providing a listing of the changes under five general categories.
- Language Keywords
-
Discusses the broad issue of language keywords, in particular the removal of the double underscore and the introduction of both contextual and spaced keywords.
- The Managed Types
-
Looks at syntactic changes in the declaration of the Common Type System (CTS) – this includes changes in the declaration of classes, arrays (including the parameter array), enums, and so on.
- Member Declarations within a Class or Interface
-
Presents the changes involving class members such as scalar properties, index properties, operators, delegates, and events.
- Value Types and Their Behaviors
-
Focuses on value types and the new family of interior and pinning pointers. It also discusses a number of significant semantics changes such as the introduction of implicit boxing, immutability of boxed value types, and the removal of support for default constructors within value classes.
- General Language Changes
-
Details semantic changes such as support for cast notation, string literal behavior, and changes in the semantics between ISO-C++ and C++/CLI.
- Motivating the New Language Design
-
For the interested reader; an Appendix that provides an extended rationale for the new language design.
Please note that this guide, despite our best efforts, is likely incomplete in every detail. Should you find any additional issues not covered, please contact us.