C++ Programming/Weblinks
From Wikibooks, the open-content textbooks collection
Contents
|
[edit] External links
[edit] Reference Sites
- Bjarne Stroustrup's C++ page.
- C++ Standard Library Technical Report.
- 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++.
- The SGI Standard Template Library Programmer's Guide.
[edit] Compilers and IDEs
[edit] Free or with free versions
- GCC , the GNU Compiler Collection, which includes a compiler for C++.
- MinGW, a Win32 port of the GNU Compiler Collection and toolset designed for compatibility with the host OS.
- Cygwin, a Win32 port of GCC and GNU Utils designed to simulate a Unix-style environment.
- The Microsoft Visual C++ 2005 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 (http://www.microsoft.com/msdownload/platformsdk/sdkupdate/) as well (for the Windows headers and import libraries).
- 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".
- 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.
- 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).
- 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.
- Dev-C++, a free IDE including a distribution of MinGW. Delphi and C source code available.
- 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.
- 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.
- Djgpp, a free compiler for C, C++, Forth, Pascal and more including C sources. Runs under DOS.
- Digital Mars, a free C and C++ Compiler for DOS, Win & NT by the author of Zortech C++.
- Macintosh Programmer's Workshop (MPW). Same software and documentation as the "Tool Chest:Development Kits:MPW etc." folder on the August 2001 Developer CD.
- 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.
- Microsoft eMbedded Visual C++ allows you to develop for Windows CE. It includes an IDE, which includes an integrated debugger.
- Borland C++Builder v5.5
- 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.
[edit] Commercial
- 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]
- Comeau C/C++ Compiler. It is closest to the C++ Standard. You can purchase Comeau C/C++ 4.3.3 for $50. Core C++03 language enhancements for all major and minor features of C++ and C, including export.
[edit] Libraries
[edit] Free or with free versions
- 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.
- The WFC (Win32 Foundation Classes) site.
- The WTL site.
- 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.
- 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.
- 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.
- Crypto++ Library is a free C++ class library of cryptographic schemes.
- 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.
- 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.
- Simple DirectMedia Layer is a cross-platform multimedia library for C/C++. It provides low-level acces to 2D framebuffer 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.
- 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.
- 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.
[edit] General Information/Discussion Forums
References to other locations/works or discussion areas that can be relevant to the topic of the book.
- Misc.
- A community Bookmark ranking/sharing WEB tool lots of related sites to the C++ topic.
- Kohl et al. 2004: C/C++ Reference
- The C++ Annotations for C programmers
- C / C++ Tutorials Collection of Online C / C++ Tutorials
- http://www.cplusplus.com/main.html
- cplusplus.com is an open resource for visitors. Here you will find different web discussion groups where ask what you always wanted to know, share experiences and discoveries and help other programmers.
- Scott Meyers is one of the world's foremost experts on C++ software development. He wrote the best-selling Effective C++ series (Effective C++, More Effective C++, and Effective STL), wrote and designed the innovative Effective C++ CD, is consulting editor for Addison Wesley's Effective Software Development Series, and is a member of the advisory board for Software Development magazine.
- Cprogramming.com is 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++.
- Frequently Asked Questions About Win32 Programming.
- CppHeresy, provides guidelines about how to keep the C++ bits simple.
- Object-Oriented Numerics List is a forum for discussing scientific computing in object-oriented environments. An archive is available.
[edit] News and Publications
- C/C++ Users Journal.
[edit] 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.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.
[edit] User Groups
- 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.
[edit] 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
[edit] Blogs and Wikis
- a Wikipedia-like page with much code examples.
- TWiki C++ Web is a C++ wiki with GNU Free Documentation License
- Wikicities C++ is a multi-language C++ wiki (currently English and Polish).
[edit] Mailing Lists
- Object-Oriented Numerics List, forum for discussing scientific computing in object-oriented environments. An archive is available.
[edit] Forums
- C++ Learning Community, forum to discuss C++ related topics. Beginners made especially welcomed.
- New to the C++ world? Go and ask any questions you may have.
[edit] Online Books
- Windows API (C and VB Classic), MFC (C++), COM and creation of ActiveX modules.
- C++ In Action
- Teach Yourself C++ in 21 Days, Second Edition
- More C++ Tim Love July 5, 2001
- Introduction to Object-Oriented Programming Using C++, Peter Müller 1997
- C++ Programming for Scientists,
- Roldan Pozo, Computing and Applied Mathematics Laboratory, Karin Remington, Scientific Computing Environments Division
- C++ for Unix quick-reference, with C variations
- STL Quick Reference
- C++ A dialog - Steve Heller
- Learning C++: An Index of Entry Points
- C++ Programming How-To
- Think like a computer scientist: C++
- Thinking in C++, 2nd Edition by Bruce Eckel, Free Electronic Book, Volume 1 & Volume 2
[edit] Misc. C++ Tools
[edit] Free or with a free version
- Doxygen is a documentation system for C++, C, and other programming languages.
- 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.
- 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.
- 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)
[edit] C++ Coding Conventions
[edit] Source Code Formatting rules
- Kernighan and Ritchie (or K&R) style
- GNU Programmer's Style Guide
- Linux kernel coding style
[edit] Comprehensive Source Code Convention guidelines
- QuantLib Programming Style Guidelines
- Bjarne Stroustrup's C++ Style and Technique FAQ
- The C++ Style Sweet Spot A Conversation with Bjarne Stroustrup, Part I by Bill Venners
- KDE Binary Compatibility Issues With C++
- C++ portability guide version 0.8 originally by David Williams, 27 March 1998
- Programming in C++, Rules and Recommendations by FN/Mats Henricson and Erik Nyquist
- Wildfire C++ Programming Style With Rationale by Keith Gabryelski
- Musings on Good C++ Style (Technology) by GoingWare
- Google C++ Style Guide
- CERT C++ Secure Coding Standard
- Joint Strike Fighter air vehicle: C++ coding standards 2005