
These notes cover the C++ compiler and library components of Open Watcom. Collectively we refer
to these components as the "C++ project."

The version of C++ implemented by the C++ Project is currently an approximation of C++ 1998. We
say it is an approximation because not all C++98 features are supported. Some library
components, particularly ones that rely on unsupported features, are missing. It is our
intention to eventually support all of C++ 1998 and, ultimately, the newer standards as well.

Open Watcom C++ does support a few features from the newer standards, and also offers some
library components from the newer standards. This reflects the incremental evolution of the
project. We want to make whatever features have been implemented immediately available without
necessarily waiting for complete support for an entire standard. As a result you may be able to
use some modern C++ features in your programs, even while lacking certain features from the
older, 1998 standard. All features that have been implemented are supported, and bug reports
against them are welcome. Missing features should be reported as enhancement requests rather
than as bugs.

The C++ project has several long term goals, listed here as different subprojects. Not all of
these subprojects are currently active. However, if you are interested in contributing to the
C++ project, contributions in any of these areas are welcome.

+ [**C++ Language**](https://github.com/open-watcom/open-watcom-v2/wiki/C---Language). It is our
  desire to make the C++ compiler conformant, to the greatest degree feasible, with the C++ 2011
  standard.

+ [**C++ Library**](https://github.com/open-watcom/open-watcom-v2/wiki/C---Library). Likewise,
  it is our desire to make the C++ library conformant, to the greatest degree feasible, with the
  C++ 2011 standard. In addition, we have implemented or intend to implement several Open Watcom
  specific library components.

+ **C++ for Legacy Systems**. Open Watcom supports several legacy platforms including, for
  example, 16- and 32-bit DOS, 16- and 32-bit OS/2, 16-bit Windows, and older 32-bit Windows
  platforms (Windows NT, Windows 95, etc.). No modern C++ compiler exists that supports these
  platforms other than Open Watcom.

+ **C++ for Embedded Programming**. Open Watcom C++ is one of the few actively maintained C++
  compilers that can generate 16 bit x86 code. Thus, one of our goals is to provide a modern C++
  compiler and library that 16 bit x86 embedded system programmers can actually use.

+ **C++ for Numerical Applications**. The Open Watcom tool set contains a FORTRAN 77 compiler
  and a C compiler that is working its way toward C99 compliance. We anticipate this combination
  will be interesting to those doing numerical work, and we would like Open Watcom C++ to
  support such programmers as well.

+ **Seamless Cross Platform Support**. The Open Watcom project as a whole is characterized by
  good cross-platform support. We would like the C++ compiler to continue this tradition by
  offering reasonable platform-specific extensions as appropriate.

+ **Rich Tool Support**. The Open Watcom project is also characterized by an extensive
  collection of tools (debugger, profiler, browser, etc.). We would like these tools to work
  well with the C++ compiler even as the compiler evolves.

+ **High Quality Documentation.** This includes both external documentation for users and
  internal documentation for compiler and library developers.

+ **Maintenance.** Of course, we want to provide the highest quality software that we can. Thus,
  general maintenance needs to be given at least as much attention as the more glamorous
  activity of adding new features.

