Jump to content

C++: Difference between revisions

From EDM2
No edit summary
No edit summary
Line 35: Line 35:
* [[The Open Objects Library (OOL)]] - Originally freeware, now open source - Discontinued.
* [[The Open Objects Library (OOL)]] - Originally freeware, now open source - Discontinued.
* [[OpenZinc]] - Multi-platform UI library - Originally commercial, now open source - Current.
* [[OpenZinc]] - Multi-platform UI library - Originally commercial, now open source - Current.
* [[Simple Directmedia Layer]] - Multimedia  - Open Source - Current.
* [[Snappy]] - Compression lib. - Open Source - Current.
* [[Snappy]] - Compression lib. - Open Source - Current.
* [[Socket++]] - Networking library - Open Source - Discontinued.
* [[Socket++]] - Networking library - Open Source - Discontinued.

Revision as of 18:29, 25 February 2016

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 an C++ environment and some C++ compilers are actually just C compilers with a pre-processor, C++ is actually a very distinct language to C that by design uses mostly the same syntax.

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.

A list of OS/2 implementations of C++

OS/2 C++ libraries and class libraries

If the compiler you use supports both C and C++, you can use C libraries with your C++ programs and vise versa, however using C++ libraries from C can be a bit kludgey and require you to write bindings, while using C libraries with C++ is less problematic it can also require you to write some interfaces, take a look at the C page for available C libraries.

  • C/Database Toolchest - Library for database creation and maintenance - Commercial - Current.
  • CdBFile - For reading/writing .dbf/xBase files - Open Source - Discontinued
  • CThrough - Graphics class library - Commercial - Discontinued
  • dbfLIB++ - A tool that allows you to work with xBase databases - Commercial - Discontinued.
  • e_Comm - Communications and networking - Commercial - Discontinued.
  • e_Db - Database engine - Commercial - Discontinued.
  • e_Fs - Virtual file system - Commercial - Discontinued.
  • Kroni's Classes - Class library with sundry PM functions - PostcardWare - Discontinued.
  • LZ4 - Compression library - Open source - Current
  • Net.h++ - Networking and comms - Commercial - Discontinued.
  • The Open Objects Library (OOL) - Originally freeware, now open source - Discontinued.
  • OpenZinc - Multi-platform UI library - Originally commercial, now open source - Current.
  • Simple Directmedia Layer - Multimedia - Open Source - Current.
  • Snappy - Compression lib. - Open Source - Current.
  • Socket++ - Networking library - Open Source - Discontinued.
  • Threads.h++ - Multi-threading - Commercial - Discontinued.
  • Tools.h++ - Foundation classes - Commercial - Discontinued.
  • V C++ GUI Framework - Multi-platform - Open source - Discontinued
  • WebM libvpx - VP8/VP9 streaming video - Open Source - Current
  • ZGRAF - Graphing library - Commercial - Current
  • Zipios++ - Compression class lib. - Open Source - Current

Foreign libraries with C++ bindings

  • shwild - Wildcard pattern matching - Open Source - Current.

GUI and application generators with C++ output

Translators that generate C++ output

Workframes and or IDE's

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

  • CC-Rider C++ - Commercial - Discontinued - Static analyser, beautifier and visualiser.
  • SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.

Applications with a C++ programming interface

  • PostgreSQL - SQL relational database system - Open source - Current.

OS/2 text & programmers editors with C++ support

  • Boxer - C++ support included by default - Commercial - Discontinued
  • BRIEF - C++ support included by default - Commercial - Discontinued
  • Elvis - C++ syntax support included by default - Open source - Current.
  • Enhanced Editor - Has C++ syntax highlighting built in, auto-formatting and automatic code summary as a separate download.
  • FTE - Has support for syntax highlighting, code folding and syntax-aware autoindent.
  • Future Wave Editor - C++ syntax support included by default - Shareware
  • jEdit - Java based - Open source - Current
  • LPEX - Commercial - OS/2 version discontinued
  • Lugaru Epsilon - C++ syntax highlighting, code folding and syntax-aware autoindent. - Commercial
  • NEdit - XFree86 - Autoindent, autocomplete and syntax highlighting.
  • SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser.

A list of DOS implementations of C++

DOS libraries and class libraries

  • C/Database Toolchest - Library for database creation and maintenance - Commercial - Current.
  • CdBFile - For reading/writing .dbf/xBase files - Open Source - Discontinued.
  • e_Db - Databse engine - Commercial - Discontinued.
  • ZGRAF - Graphing library - Commercial - Current

DOS text & programmers editors with C++ support

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

A list of C++ implementations that run under WinOS/2

  • TopSpeed C++ - Commercial - Discontinued - Cross compilation from DOS or OS/2 only

WinOS/2 compatible libraries and class libraries

  • C/Database Toolchest - Library for database creation and maintenance - Commercial - Current - 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 - Commercial - Discontinued.
  • Tools.h++ - Foundation classes - Commercial - Discontinued.
  • V C++ GUI Framework - Multi-platform - Open source - Discontinued

Publications

  • Bjarne Stroustrup: The C++ Programming Language (4th edition) - 1368 pages - 2013 - In print - 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) - 720 pages - 1990 - Out of print - ISBN 0201539926
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 - 457 pages - 1990 - In print - ISBN 0201514591
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.

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 proper old school VHS cassette format.
  • The author of C++, Bjarne Stroustrup has a lot of introductionary material on his homepage

Links

USENET

Frequently Asked Question lists (FAQ's)

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
  • N3690 (working draft) - Aka C++14 - Had not been finalised in early 2015.
  • According to the working group a new standard is scheduled to be introduced in 2017, so presumably C++17.

C++ history