C++

From EDM2
Jump to: navigation, search
C++.png

A language in the CPL branch of the Algol family of programming languages, C++ is basically AT&T C with the object-oriented features of Simula. While you can compile and run C programs in a C++ environment and some C++ compilers are actually just C compilers with a pre-processor, C++ is in fact a very distinct language to C that by design uses mostly the same syntax.

History

C++ was first implemented as a rudimentary pre-processor for C in 1979 and was then known simply as C with Classes, the name was changed to C84 in 1983 and when people realised that it would clash with the naming convention for the ANSI C formal standard process that had already begun it was changed again to C++ in 1985.

  • Oct 1985: Cfront 1.0
  • 1998: C++98 (ISO/IEC 14882:1998)
  • 2003: C++03 (ISO/IEC 14882:2003)
  • 2011: C++11 (ISO/IEC 14882:2011)

OS/2 implementations

Interpreters

OS/2 C++ libraries and class libraries

If the compiler supports both C and C++, you can use C libraries with C++ programs and vice versa. However using C++ libraries from C can be a bit kludgey and require you to write bindings. While using C libraries from C++ is less problematic it can also require you to write some interfaces, take a look at the C page for available C libraries. Also see the Standard Template Library for STL support.

GUI class libraries

Database and file management

Data compression

Open source:

  • LZ4 - Compression library -
  • Snappy - Compression library
  • Zipios++ - Compression class library

Signal processing

GUI and application generators with C++ output

Translators that generate C++ output

  • Oracle Pro C - SQL > C++
  • Tower Eiffel - Can optionally generate C++ instead of native output

Workframes and or IDE's

  • CommonPoint
  • Object WorkBench - Shareware

Code verifiers, beautifiers, visualisers and other C++ source code utilities

  • CC-Rider C++ - Static analyser, beautifier and visualiser.
  • DOC++ - Automatic document generator - Open source
  • Ephedra - C/C++ to Java - Open source
  • Exuberant ctags - Creates index files out of C++ source files - Open source
  • PC-Lint
  • SourceLink - Browser/Editor/Visualiser

C++ source code snippets, archives and collections

Small programs or routines that you can integrate into your own programs or study to learn from, but are not delivered in library form.

Applications with a C++ programming interface

  • PostgreSQL - SQL relational database system - Open source

DOS implementations

Interpreter

Class libraries

Editors support

  • Boxer - C++ support included by default
  • BRIEF
  • Elvis - C++ syntax support included by default - Open source
  • FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.

Implementations that run under WinOS/2

WinOS/2 compatible libraries and class libraries

  • C/Database Toolchest - Library for database creation and maintenance - Note that the correct library for Win16b development is called the DOS library (but contains Win 16b libs as well) and not the Windows one.
  • Net.h++ - Networking and comms
  • Tools.h++ - Foundation classes
  • V C++ GUI Framework - Multi-platform - Open source

Publications

Note that product specific publications are listed on their relative product page.

OS/2 and C++ related articles, info & tips

Books

  • Bjarne Stroustrup: The C++ Programming Language (4th edition) - 2013, ISBN 0321958322
More or less the standard text for learning C++, requires some prior programming knowledge, preferably C.
  • Bjarne Stroustrup: The C++ Programming Language (2nd edition) - Addison-Wesley 1990, ISBN 0-201-53992-6
An older version of the same book, again not for beginners but at half the size of the current version this is in some ways a better read for those that are using vintage compilers such as VisualAge C++.
  • Margaret A. Ellis & Bjarne Stroustrup: The Annotated C++ Reference Manual - Addison-Wesley 1990, ISBN 0-201-51459-1
In some ways better than the other Stroustrup works as a reference book, the explanations of some of the rules are much clearer. Not a tutorial, not for beginners.
  • Taligent: Taligent's Guide to Designing Programs: Well Mannered Object-Oriented Design in C++ - Addison-Wesley 1994 - Available to read online form here - ISBN 0-201-40888-0
Although outdated, a really good introduction to object oriented C++, not a beginners book but suitable for intermediate and advanced users.

Articles

Tutorials and other learning material

  • EDM/2 has its own C++ tutorial written by Terry Norton:

Part 1, Part 2, Part 3, Part 4, Part 5, Part 6

  • MIX Software has a number of video courses available that focus on teaching C++, both for the beginner and tackles more advanced topics as well, note that these are delivered in VHS cassette format.
  • The author of C++, Bjarne Stroustrup has a lot of introductory material on his homepage

Links

USENET
Frequently Asked Questions (FAQs)

Standards

Apart from the original AT&T documents there appear to be no sources of free C++ standards texts, not even pre-publication or beta editions.

  • Initially all C++ compilers and/or pre-processors were based on the original Bjarne Stroustrup pamphlets published by AT&T as C++ Reference Manual, Data Abstraction in C and C++ Tutorial.
  • ISO/IEC 14882:1998 - Aka C++98, the first formal standard, largely written by Stroustrup himself.
  • ISO/IEC 14882:2003 - Aka C++03 - Also has a "C++ Technical Report 1" with clarifications and errata or ISO/IEC TR 19768:2007, that is sometimes referred to as C++07.
  • ISO/IEC 14882:2011 - Aka C++11
  • ISO/IEC 14882:2014 - Aka C++14 (2014-12)
  • ISO/IEC 14882:2017 - C++17
  • ISO/IEC 14882:2020 - C++20 (2020-12)
  • ISO C++ Working group homepage