Share via


Backwards Breaking Changes from version 1.1 to 2.0 (and native C++ 14 compiler)

I had to go through the C++ part for an ISV so I thought I would share the URL: https://www.gotdotnet.com/team/changeinfo/Backwards1.1to2.0/default.aspx.

As of today (10/5/04), the list for C++ is:

Languages: C++

  1. Pointer-to-members now require qualified name and the & operator
  2. __asm int 3 now generates native code
  3. A using declaration of nested type is now illegal
  4. Compiler disallows forward declaration of a managed enum
  5. Cannot scope native enums.
  6. Switch removal: /YX
  7. Switch removal: Optimizations /Oa, /Op and /Ow
  8. Switch removal: /ML and /MLd
  9. Switch removal: /G3 - /G7, /GB, /Gf, /GD, /GM
  10. Switch change: /GS turned on by default.
  11. Synchronous Exception handling (/Ehs) guarantees that S.E.H exceptions will not be caught
  12. In mixed mode, native constructors are called before managed constructors
  13. Added debug iterators
  14. Many new asserts added to debug CRT
  15. ATL, MFC, SCL, and CRT libraries are side-by-side shared assemblies with manifests.
  16. Many existing functions now validate their parameters and will call the invalid_parameter_handler when an invalid parameter is passed
  17. Explicit specialization not allowed as a copy constructor/copy assignment operator
  18. The single-threaded CRT libraries, libc.lib, licd.lib, msvcrt.lib, and msvcrtd.lib, have been removed. /ML and /MLd switches are no longer supported
  19. Existing less secure versions of many functions have been deprecated.
  20. The swprintf functions has been changed to be conformant.
  21. Compiler no longer allows const_cast to down cast in the old syntax.
  22. Switch conflict: /clr and /MT
  23. CArchive global operators now member operators
  24. The overload of pow, double pow(int, int), was removed to better conform with the standard
  25. RTC now supports unicode file names, variable names, etc.
  26. The file descriptor value -2 is now used to indicate that stdout and stderr are not available for output, as for example in a Windows application that has no console window. The previous value used was -1.
  27. CUrl::CrackUrl input flag ATL_URL_DECODE now functions exactly like ATL_URL_ESCAPE
  28. Floating-point control word support functions have been deprecated for applications compiled with /CLR or /CLR:PURE
  29. The _spawn family of functions does not reset errno to zero on success, as it did in previous versions.
  30. Object copied by the CLR without calling copy constructor
  31. _set_security_error_handler has been deprecated and will be removed in the near future.