411 REFERENCE · Wikibooks
C++ Programming/Weblinks
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Reference Sites
http://www.research.att.com/~bs/C++.html
Bjarne Stroustrup's C++ page.
http://www.open-std.org/jtc1/sc22/wg21/docs/library_technical_report.html
C++ Standard Library Technical Report.
http://www.open-std.org/jtc1/sc22/wg21/
C++ Standards Committee's official website, previously at http://anubis.dkuug.dk/jtc1/sc22/wg21/ , ISO/IEC JTC1/SC22/WG21 is the international standardization working group for the programming language C++.
http://www.sgi.com/tech/stl/index.html
The SGI Standard Template Library Programmer's Guide.
Compilers and IDEs
Free or with free versions
http://gcc.gnu.org/
GCC , the GNU Compiler Collection, which includes a compiler for C++.
http://www.mingw.org/
MinGW, a Win32 port of the GNU Compiler Collection and toolset designed for compatibility with the host OS.
http://sourceware.cygnus.com/cygwin
Cygwin, a Win32 port of GCC and GNU Utils designed to simulate a Unix-style environment.
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/visual-cpp-express
The Microsoft Visual C++ 2010 Express Edition. It also allows you to build applications that target the Common Language Runtime (CLR). You should read their license for yourself to make sure. MFC, ATL and the Windows headers/libraries are not included with this version. To create Windows programs, you will need to download the Microsoft Platform SDK as well (for the Windows headers and import libraries).
http://hpgcc.sourceforge.net/
HP-GCC comprises the GNU C compiler targeted at the ARM processor of ARM-based HP calculators (like the HP49g+), HP specific libraries, a tool (ELF2HP) that converts the gcc produced binary to the appropriate format for the HP calculator, and an emulator (ARM Toolbox/ARM Launcher) that lets you execute ARM programs on your computer. At present, only a Windows version is available, but the site says that Linux and Mac OS X versions are "on the way".
http://www.ultimatepp.org/
Ultimate++ a C++ cross-platform and Open Source rapid application development suite focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.The IDE can work with GCC, MinGW and Visual C++ 7.1 or 8.0 compilers (including free Visual C++ Toolkit 2003 and Visual C++ 2005 Express Edition) and contains a full featured debugger.
http://www.codelite.org/
CodeLite, open-source under the terms of the GPL license, cross platform IDE for the C/C++ programming languages (tested on Windows XP SP3, (K)Ubuntu 8.04, and Mac OSX 10.5.2).
http://www.codeblocks.org/
Code::Blocks, C++ cross-platform and Open Source (GPL2) IDE, runs on Linux or Windows (uses wxWidgets), supports GCC (MingW/Linux GCC), MSVC++, Digital Mars, Borland C++ 5.5 and Open Watcom compilers. Offers syntax highlighting (customizable and extensible), code folding, tabbed interface, code completion, class browser, smart indent and a To-do list management with different users and more.
http://www.bloodshed.net/devcpp.html
Dev-C++, a free IDE including a distribution of MinGW. Delphi and C source code available.
http://wxdsgn.sourceforge.net/
wxDev-C++, an IDE/RAD tool resulting from extending Dev-C++. With all the features of the previous plus others. Uses GCC for the compiler, and adds an IDE and a form designer supporting wxWidgets.
http://quincy.codecutter.org/
Quincy 2005, a simple IDE for C and C++ under Windows. Installs the MinGW compiler and GDB debugger. Designed as a friendly learning environment. Public domain C++ source code.
http://www.delorie.com/djgpp/
Djgpp, a free compiler for C, C++, Forth, Pascal and more including C sources. Runs under DOS.
http://www.digitalmars.com
Digital Mars, a free C and C++ Compiler for DOS, Win & NT by the author of Zortech C++.
http://developer.apple.com/tools/mpw-tools/
Macintosh Programmer's Workshop (MPW). Same software and documentation as the "Tool Chest:Development Kits:MPW etc." folder on the August 2001 Developer CD.
http://www.openwatcom.org/
OpenWatcom, the Open Watcom is a joint effort between SciTech Software, Sybase®, and a select team of developers, which will bring the Sybase Watcom C, C++ and Fortran compiler products to the Open Source community.
http://msdn.microsoft.com/mobility/prodtechinfo/devtools/eVisualc/default.aspx
Microsoft eMbedded Visual C++ allows you to develop for Windows CE. It includes an IDE, which includes an integrated debugger.
http://www.borland.com/products/downloads/download_cbuilder.html
Borland C++Builder v5.5
http://www.eclipse.org/
Eclipse, a multi-language IDE with support for C++ through the CDT plugin. It requires a GCC backend. There is a download specifically for C++ developers that does not include the Java libs.
Commercial
http://www.intel.com/software/products/compilers/
Intel Compiler, a Intel® compilers. Compatible with the tools developers use, Intel compilers plug into popular development environments and feature source and binary compatibility with widely-used compilers. Every compiler purchase includes one year of Intel® Premier Support, providing updates, technical support and expertise for the Intel® architecture. [Intel CPUs ONLY]
http://comeaucomputing.com/
Comeau C/C++ Compiler. Available for purchase Comeau C/C++ supports Core C++03 language enhancements for all major and minor features of C++ and C, including export.
Misc. C++ Tools
Free or with a free version
http://www.stack.nl/~dimitri/doxygen/
Doxygen is a documentation system for C++, C, and other programming languages.
http://valgrind.kde.org/
Valgrind, a system for debugging and profiling applications at runtime. The system runs on nearly any x86 linux (sorry, no amd64 yet). It can detect memory leaks, illegal memory access, double deletes, cache misses, code coverage and much, much more.
http://msdn.microsoft.com/visualc/vctoolkit2003/
Microsoft Visual C++ Toolkit 2003, This is a free optimizing compiler provided by Microsoft that developers can use to develop and compile applications in C or C++. It is the same compiler that ships with the professional edition of Visual Studio. It ships with the standard library and sample code.
http://ccbuild.sourceforge.net/?page=home
ccbuild, a C++ source scanning build utility for code distributed over directories. Like a dynamic Makefile, ccbuild finds all programs in the current directory (containing "int main") and builds them. For this, it reads the C++ sources and looks at all local and global includes. All C++ files surrounding local includes are considered objects for the main program. The global includes lead to extra compiler arguments using a configuration file. Next to running g++ it can create simple Makefiles, A-A-P files, and graph dependencies using DOT (Graphviz) graphs. (Linux only)
Libraries
Free or with free versions
http://www.boost.org/
The Boost web site. Boost is a large collection of high-quality libraries for C++, some of which are likely to be included in future C++ standards.
http://www.samblackburn.com/wfc/index.html/
The WFC (Win32 Foundation Classes) site.
http://sourceforge.net/projects/wtl/
The WTL site.
http://www.oonumerics.org/blitz/
Blitz++ is a C++ class library for scientific computing which provides performance on par with Fortran 77/90. It uses template techniques to achieve high performance. The current versions provide dense arrays and vectors, random number generators, and small vectors and matrices. Blitz++ is distributed freely under an open source license, and contributions to the library are welcomed.
http://www.bdsoft.com/tools/stlfilt.html
STLFilt is a STL Error Message Decryptor for C++. It simplifies and/or reformats long-winded C++ error and warning messages, with a focus on STL-related diagnostics.
http://www.swox.com/gmp/
GMP is a free library for arbitrary precision arithmetic, operating on signed integers, rational numbers, and floating point numbers. There is no practical limit to the precision except the ones implied by the available memory in the machine GMP runs on.
http://www.cryptopp.com/
Crypto++ Library is a free C++ class library of cryptographic schemes.
http://alleg.sourceforge.net/
Allegro is a game programming library for C/C++ developers distributed freely, supporting the following platforms: DOS, Unix (Linux, FreeBSD, Irix, Solaris, Darwin), Windows, QNX, BeOS and MacOS X. It provides many functions for graphics, sounds, player input (keyboard, mouse and joystick) and timers. It also provides fixed and floating point mathematical functions, 3d functions, file management functions, compressed datafile and a GUI.
http://fltk.org/
FLTK (pronounced "fulltick") is a cross-platform C++ GUI toolkit for UNIX®/Linux® (X11), Microsoft® Windows®, and MacOS® X. FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL® and its built-in GLUT emulation. FLTK is designed to be small and modular enough to be statically linked, but works fine as a shared library. FLTK also includes an excellent UI builder called FLUID that can be used to create applications in minutes.
http://www.libsdl.org/
Simple DirectMedia Layer is a cross-platform multimedia library for C/C++. It provides low-level access to 2D frame-buffer and hardware accelerated 3D graphics(using OpenGL), audio, threads, timers,user input and event handling. Other features are available through "plug-in libraries". Linux, Windows, BeOS, MacOS Classic, MacOS X, FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX are supported and there's some unofficial support for other platforms. SDL is available under the GNU LGPL license.
http://www.hpcfactor.com/developer/
SDKs for older platforms and from third parties. Includes a redistributable that contains the MFC library's for Windows CE 1, 2, HPC Pro, Palm-Size PC 1.2, HPC2000 and a limited number from Windows CE 4.0.
http://qt.nokia.com
Qt (pronounced "cute"), a multi-platform API that contains a UI toolkit as well as a core library. It is extremely modular, but to use it effectively, you should use at least UI+Core.
http://loki-lib.sourceforge.net/
Loki is a C++ library which demonstrates and encourages the use of generic programming and design patterns. It was written to accompany the book entitled "Modern C++ Design." The library includes a parametrized smart pointer class, generalized functors, a multi-threading abstraction, and some help for important patterns. Open source released under the MIT license.
http://tinythread.sourceforge.net/
TinyThread++, a light weight, portable C++ thread library that implements a subset of the C++0x standard, including the thread, mutex and condition_variable classes. Open source, released under the zlib/libpng License.
Commercial
http://pocoproject.org/
Poco C++ Libraries. Written in modern, standard ANSI C++, using the C++ Standard Library. Modular design, very few external dependencies, builds out-of-the-box. Good mix of "classic" object-oriented design with modern C++. Clean, easy-to-understand code, consistent coding style, comprehensive test suite.
C++ Coding Conventions
Source Code Formatting rules
http://www.cs.usyd.edu.au/~scilect/tpop/handouts/Style.htm
Kernighan and Ritchie (or K&R) style
http://www.nongnu.org/style-guide/
GNU Programmer's Style Guide
http://lxr.linux.no/source/Documentation/CodingStyle
Linux kernel coding style
Comprehensive Source Code Convention guidelines
http://quantlib.org/style.shtml
QuantLib Programming Style Guidelines
http://www.research.att.com/~bs/bs_faq2.html
Bjarne Stroustrup's C++ Style and Technique FAQ
http://www.artima.com/intv/goldilocks.html
The C++ Style Sweet Spot A Conversation with Bjarne Stroustrup, Part I by Bill Venners
http://developer.kde.org/documentation/other/binarycompatibility.html
KDE Binary Compatibility Issues With C++
https://developer.mozilla.org/en-US/docs/Mozilla/C%2B%2B_Portability_Guide
Mozilla C++ portability guide
http://www.chris-lott.org/resources/cstyle/Ellemtel-rules-mm.html
Programming in C++, Rules and Recommendations by FN/Mats Henricson and Erik Nyquist
http://www.chris-lott.org/resources/cstyle/Wildfire-C++Style.html
Wildfire C++ Programming Style With Rationale by Keith Gabryelski
http://www.kuro5hin.org/story/2002/5/9/205040/3918
Musings on Good C++ Style (Technology) by GoingWare
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml
Google C++ Style Guide
https://www.securecoding.cert.org/confluence/pages/viewpage.action?pageId=637
CERT C++ Secure Coding Standard
http://web.archive.org/web/20061230015340/http://www.research.att.com/~bs/JSF-AV-rules.pdf
Joint Strike Fighter air vehicle: C++ coding standards 2005
http://www.chris-lott.org/resources/cstyle/
C and C++ Style Guides by Chris Lott, lists many popular C++ style guides.
http://www.misra-cpp.org/
MISRA C++: Guidelines for the use of the C++ language in critical systems published by The Motor Industry Software Reliability Association (MISRA) (based on a subset of C++).
http://freeworld.thc.org/root/phun/unmaintain.html
A very funny satiric text that turns the tables on the issues concerning coding style by Roedy Green.
Online C++ books, guides and general information
More C++ Idioms, covering modern C++ idioms.
Windows Programming, a Wikibook on Windows API (C and VB Classic), MFC (C++), COM and creation of ActiveX modules.
Optimizing C++, covering how C++ programmers can improve a program's performance.
Linux Applications Debugging Techniques, a hands-on guide to debugging applications under Linux.
C++ In Action, by Bartosz Milewski
Teach Yourself C++ in 21 Days, Second Edition
More C++, by Tim Love, July 5, 2001
Introduction to Object-Oriented Programming Using C++, by Peter Müller, 1997.
C++ Programming for Scientists, by Roldan Pozo and Karin Remington
C++ for Unix, a broken link, a quick reference, with C variations
STL Quick Reference, probably by Pablo Halpern,
C++ A dialog, by Steve Heller
Learning C++: An Index of Entry Points
C++ Programming How-To, by Al Dev (Alavoor Vasudevan), 2001
Think like a computer scientist: C++
C++ Programming Tutorial for the beginners
References to other works that can be relevant to the topic:
Kohl et al. 2004: C/C++ Reference at cppreference.com
The C++ Annotations for C programmers, by Frank B. Brokken
C / C++ Tutorials at pickatutorial.com, a collection of online C / C++ tutorials
cplusplus.com, an open resource with various web discussion groups
A web site of Scott Meyers, an expert on C++ software development. He wrote the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL), wrote and designed Effective C++ CD
Cprogramming.com, a web site designed to help you learn C or C++ and provide you with C and C++ programming resources.
Misc. Books, News & Articles on C++, by orelily.com
Frequently Asked Questions About Win32 Programming, from iseran.com
CppHeresy at c2.com, guidelines about how to keep the C++ bits simple
C++ FAQ at parashift.com, sometimes also called C++ FAQ Lite.
Defective C++: a 2009 summary by Yossi Kreinin of the major defects he finds in the C++ programming language. (Related: Particularities of the C programming language).
The Boost C++ Libraries online book that introduces many Boost libraries in a tutorial style and complements the official documentation. Under a Creative Commons Attribution - NonCommercial - NoDerivatives 4.0 International License.
Cplusplus Code Examples
IRC
#C at (irc://irc.tambov.ru)
C/C++ Channel (http://silversoft.net/) (Russian Channel)
#C++ at (irc://hub.ptnet.org)
C++ Channel (Portuguese Channel)
#C++ at (irc://irc.euirc.net)
C++ Channel (German Channel)
##C++ at (irc://irc.freenode.net)
C++ Channel
#c++newbie at (irc://irc.freenode.net)
Channel for those new to C++
#c++ at (irc://irc.dynastynet.net)
Channel on DynastyNet for discussing C++ topics.
User Groups
http://www.accu.org/
ACCU, formerly the Association for C and C++ Users, ACCU is a non-profit organization devoted to professionalism in programming at all levels. Although primarily focused on C and C++, have now interests in Java, C# and Python also.
Newsgroups (NNTP)
comp.std.c++ - FAQ
comp.lang.c++.leda
comp.lang.c++.moderated
comp.lang.c++
microsoft.public.vc.mfc
microsoft.public.vc.stl
Blogs and Wikis
http://www.codepedia.com/1/Cpp
a Wikipedia-like page with much code examples.
http://www.gnacademy.org/twiki/bin/view/CPP/TableOfContents%20GNAcademy.Org
TWiki C++ Web is a C++ wiki with GNU Free Documentation License
http://cpp.wikia.com/
Wikicities C++ is a multi-language C++ wiki (currently English and Polish).
Mailing Lists
http://www.oonumerics.org/mailman/listinfo.cgi/oon-list/
Object-Oriented Numerics List, forum for discussing scientific computing in object-oriented environments. An archive is available.
Forums
http://stackoverflow.com/questions/tagged/c%2b%2b
Stackoverflow is a knowledge sharing community including discussing C++ related topics.