Cpp Standards Conformance

From Open Watcom

Revision as of 18:13, 1 April 2010; view current revision
←Older revision | Newer revision→
Jump to: navigation, search

When the commercial Watcom C++ compiler was first released as open source it was significantly behind in the area of standards conformance. The Open Watcom C++ project has evolved the compiler and its libraries considerably since then, but much work remains. It is our intention to bring the Open Watcom C++ compiler and library into conformance with the C++0x standard. By skipping over the 1998 and 2003 standards we avoid having to worry about supporting those standards as distinct entities and we can use C++0x features unconditionally in the library implementation (for example type_traits).

The purpose of this page is to document unimplemented features and to chart the progress towards C++0x conformance. We break the work on standards conformance into the following sections.

  • The C++ Language — This refers to standards issues affecting the compiler itself and not the libraries. In some cases work on the libraries must wait until certain features in the language have been implemented. We do not typically try to work around language limitations in the library, instead preferring to update the compiler when necessary.
  • Open Watcom STL — Open Watcom's implementation of the C++ Standard Template Library. This includes most of the C++ library except for IOStreams and the C++0x support mentioned below.
  • Modernizing IOStreams — Open Watcom's IOStream library is currently an "old-style" IOStream library. It needs to be overhauled.
  • C++0x Libraries — We have started work on library components described in an earlier (2008) draft of the C++0x standard. The March 2010 Final Committee Draft of ISO/IEC 14882 has now been published, however.
Personal tools