Practical, Pragmatic, C++
RSS icon Email icon Home icon
  • C++ Standard Alphabet Soup

    Posted on April 20th, 2009 wozname No comments

    C and C++ are international standards. So if you want, you can visit www.iso.org where they’ll be happy to charge way too much for a copy of the standard. It’s best to let your employer pick up the cost of this.

    There are some alternate places where you can obtain draft copies of the standard, if not the standard itself.

    www.open-std.org hosts a set of organisations working on various programming language standards. The two of interest to us would be ISO/IEC JTC1/SC22 WG14 and ISO/IEC JTC1/SC22 WG21, who produce the standards ISO/IEC 9899:1999 and ISO/IEC 14882:2003 respectively. In laymans terms: the two groups of guys who make the C and C++ standards.

    ISO/IEC – The international standards committee
    JTC1 – Information Technology Standards
    SC22 – International standardization subcommittee for programming languages, their environments and system software interfaces
    WG14 – Working Group 14 – C
    WG21 – Working Group 21 – C++

    The latest C standard is commonly called C99 and is defined by ISO/IEC 9899:1999.
    The latest C++ standard is commonly called C++03 and is defined by ISO/IEC 14882:2003.

    Technical Corrigendums
    As well as producing the standards, the working groups also produce updates to the standards over the years, these are officially called technical corrigendums. Yes, I had to look up it up, basically corrigendums means a list of corrections of errors in a book or other publication. The latest update to the C++ standard was in 2003, they withdrew the old standard ISO/IEC 14882:1998 and introduced the new one ISO/IEC 14882:2003. With C they took a different approach, they still publish the C99 standard but have 3 technical corrigendums you can obtain as well: ISO/IEC 9899:1999/Cor 1:2001, ISO/IEC 9899:1999/Cor 2:2004 and ISO/IEC 9899:1999/Cor 3:2007.

    Technical Reports
    But wait there’s more, these groups also produce things called technical reports. These are extensions to the existing standards that may get included in the next standard.

    Here’s an important one:
    ISO/IEC TR 19768:2007 – Technical Report on C++ Library Extensions (Also known as TR1)

    You’ll see many vendors advertising they have TR1 support, they usually mean they implement some of it but not all of it. Also C99 is not supported by all compilers, Visual C++ 2008 is not C99 compliant. So just remember no vendor actually follows the standards exactly, but they (in theory) try.

    Happy Programming :)

    Leave a reply