C++/CLI Migration Primer

This is a guide to moving your Visual C++ programs from Managed Extensions for C++ to Visual C++. For a checklist summary of syntactic changes, see Managed Extensions for C++ Syntax Upgrade Checklist.

C++/CLI extends a dynamic component programming paradigm to the ISO-C++ standard language. The new language offers a number of significant improvements over Managed Extensions. This section provides an enumerated listing of the Managed Extensions for C++ language features and their mapping to Visual C++ 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 changes in language keywords, including the removal of the double underscore and the introduction of both contextual and spaced keywords.

  • Managed Types (C++/CL)
    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.

See Also

Concepts

Mixed (Native and Managed) Assemblies

Component Extensions for Runtime Platforms