C++: Difference between revisions
Line 32: | Line 32: | ||
* [[ObjectPM]] - [[Presentation Manager]] classes - Commercial - Discontinued | * [[ObjectPM]] - [[Presentation Manager]] classes - Commercial - Discontinued | ||
* [[OpenZinc]] (formerly ''Zinc'') - Multi-platform UI library - Originally commercial, now open source - Current | * [[OpenZinc]] (formerly ''Zinc'') - Multi-platform UI library - Originally commercial, now open source - Current | ||
* [[Qt]] - Multi-platform application and UI framework - Commercial/Open source - Current | |||
* StarDivision StarView - Commercial - Discontinued | * StarDivision StarView - Commercial - Discontinued | ||
* [[V C++ GUI Framework]] - Multi-platform - Open source - Discontinued | * [[V C++ GUI Framework]] - Multi-platform - Open source - Discontinued |
Revision as of 20:13, 23 June 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 in fact 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++
- Borland C/C++ - Commercial - Discontinued
- Glockenspiel C++ - Commercial - Discontinued
- GNU GCC C/C++ Compiler and Linker - Open Source - Current
- GCC/2 - Open Source - Discontinued
- EMX Compiler - Open Source - Discontinued
- Innotek GCC - Open Source - Discontinued
- IBM C Set++ for OS/2 - Commercial - Discontinued
- IBM VisualAge C++ - Commercial - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- Microway NDP C/C++ - Commercial - Discontinued
- OpenWatcom C/C++ - Open Source - Current
- JPI TopSpeed C++ - Commercial - Discontinued
- VZCorp VZ Programmer - Commercial - Discontinued
- Watcom C/C++ - Commercial - Discontinued
- Zortech C++ - Commercial - Discontinued
- Interpreters
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
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.
GUI class libraries
- Liant C++/Views - Multi-platform app framework/GUI library - Commercial - Discontinued
- ObjectPM - Presentation Manager classes - Commercial - Discontinued
- OpenZinc (formerly Zinc) - Multi-platform UI library - Originally commercial, now open source - Current
- Qt - Multi-platform application and UI framework - Commercial/Open source - Current
- StarDivision StarView - Commercial - Discontinued
- V C++ GUI Framework - Multi-platform - Open source - Discontinued
Database and file management
- C/Database Toolchest - Library for database creation and maintenance - Commercial - Current
- CdBFile - For reading/writing .dbf/xBase files - Open Source - Discontinued.
- CSLIB - Database classes and generator - Commercial - 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
- Lily - Embeddable LISP - Open Source - Discontinued
- Net.h++ - Networking and comms - Commercial - Discontinued
- The Open Objects Library (OOL) - Originally freeware, now open source - Discontinued
- Socket++ - Networking library - Open Source - Discontinued
- Threads.h++ - Multi-threading - Commercial - Discontinued
- Tools.h++ - Foundation classes - Commercial - Discontinued
- WebM libvpx - VP8/VP9 streaming video - Open Source - Current
- Xerces C++ - XML parser - Open Source - Current
- ZGRAF - Graphing library - Commercial - Current
Data compression
- LZ4 - Compression library - Open source - Current
- Snappy - Compression library - Open Source - Current
- Zipios++ - Compression class lib. - Open Source - Current
Foreign libraries with C++ bindings
- Cairo - 2D graphics library - Open source - Current
- LibcURL - Internet URL (WWW, FTP, etc) access - Open Source - Current
- Libxml2 - XML parser - Open source - Current
- Libxslt - XSLT parser - Open source - Current
- Simple Directmedia Layer - Multimedia - Open Source - Current
- shwild - Wildcard pattern matching - Open Source - Current
GUI and application generators with C++ output
- Hockware VisPro/C++ - GUI Creator - Commercial - Discontinued
- JBA Guidelines - GUI/Database/Application creator - Commercial - Discontinued
- Professor Owl - Open Source - Discontinued - For Borland OWL only
- Vestronix Pro C - Database and spreadsheet application generator - Commercial - Discontinued
Translators that generate C++ output
- Oracle Pro C - SQL > C++ - Commercial - Discontinued
- Tower Eiffel - Can optionally generate C++ instead of native output - Commercial - Discontinued
Workframes and or IDE's
- CommonPoint - Commercial - Discontinued
- Object WorkBench - Shareware - Discontinued
Code verifiers, beautifiers, visualisers and other C++ source code utilities
- CC-Rider C++ - Commercial - Discontinued - Static analyser, beautifier and visualiser.
- Ephedra - C/C++ to Java - Open source - Discontinued.
- Exuberant ctags - Creates index files out of C++ source files - Open source - Current
- PC-Lint - Commercial - Discontinued
- SourceLink - Commercial - Discontinued - 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.
- Dave Briccetti's Programming Samples - Sundry C++ code example
- OS/2 Primecuts - OS/2 API Examples - Open source
- PostWhat WPS Class Example - WPS code and registration example - Open Source
Applications with a C++ programming interface
- PostgreSQL - SQL relational database system - Open source
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
- Preditor/2 - C++ template with syntax highlighting - Commercial - Discontinued
- SourceLink - Commercial - Discontinued - Browser/Editor/Visualiser
A list of DOS implementations of C++
- Borland C++ - Commercial - Discontinued
- Borland Turbo C++ - Commercial - Discontinued
- Comeau C++ - Commercial
- EMX Compiler - Open Source - Discontinued
- Metaware High C/C++ - Commercial - Discontinued
- Microsoft C/C++ 7.0 - Commercial - Discontinued
- OpenWatcom C/C++ - Open Source - Current
- Orange C/C++ Compiler - Open Source - Current
- Salford Software C++ - Commercial - Discontinued
- TopSpeed C++ - Commercial - Discontinued
- Digital Mars C/C++, Symantec C++, Zortech C++ - Commercial
- Interpreter
- Cint - Open source - Current - Interpreter from CERN, intended for educational use
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
- Microsoft C/C++ 7.0 - Commercial - Discontinued
- 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
Note that product specific publications are listed on their relative product page.
Books
- 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.
Articles
- David R. Tribble: Incompatibilities Between ISO C and ISO C++ - Old but highly useful document for those wanting to port C code to C++
Tutorials and other learning material
- EDM/2 has its own C++ tutorial written by Terry Norton:
- 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
- The A-Z of Programming Languages: C++ - An interview with Bjarne Stroustrup - From Computerworld.
USENET
- comp.lang.c++.moderated - Moderated C++ discussion group - Go to the Google groups version if your ISP does not offer USENET access or you are in any other way newsgroup challenged.
Frequently Asked Question lists (FAQ's)
- The "Super" FAQ - By Marshall Cline, Bjarne Stroustrup, Herb Sutter and Andrei Alexandresc.
- The "Lite" C++ FAQ - By Marshall Cline, the original FAQ from 1991.
- Available C++ Libraries FAQ - A huge list of C++ class libraries, for all platforms but a tad outdated.
- Alternative C++ FAQ - From Cprogramming.com.
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.