Frequently Asked Questions

Can I get a copy of this site?

Here is an archived version of the site, updated daily.

Alternatively, a fully indexed and full-text searchable Windows HTML help (.chm) version of this site's Wiki content (as of February 2009) is also available. It works on many Windows versions, including the most recent ones, without the need for additional software. Since this help file is indexed it can be used in a wide range of Integrated Development Environments (IDE) that support .chm files, e.g. for keyword-sensitive access to function and template names.

You can download the help file here: cppreferencecom_feb09.zip

Can I [mirror/translate/put up my own version of/etc.] this site?

Sure, that would be great! All content here is licensed under the Creative Commons Attribution 3.0 license.

All that we would ask is that you include a link back to cppreference.com so that people know where to get the most up-to-date content.

What? This is a wiki? Can I change stuff?

Absolutely. If you see something that is wrong, fix it. If you would like to add content, make sure it's not already there, and then edit away.

Just be gentle with your changes, and think before you type.

Which wiki software does this site run?

cppreference.com is powered by DokuWiki.

Who is this site meant for?

There are no “Introduction to Programming” tutorials here. This site is meant to be used by more-or-less experienced C++ programmers, who have a good idea of what they want to do and simply need to look up the syntax. If you're interested in learning C or C++, try one of these sites:

Does this site contain a complete and definitive list of everything I can do with C++?

Few things in life are absolute. Many C++ compilers have added or missing functionality. If you don't find what you are looking for here, don't assume that it doesn't exist. Do a search on Google for it.

Some of the examples on this site don't work on my system. What's going on?

Most of the code on this site was compiled under Linux (Red Hat, Debian, or Ubuntu) with the GNU Compiler Collection. Since this site is merely a reference for the C++ specification, not every compiler will support every function listed here. For example,

  • Header files change like mad. To include the necessary support for vectors, you might have to use any of these:
      #include <vector>
      #include <Vector>
      #include <vector.h>

(according to the spec, the first of those should work, and the compiler should know enough to use it to reference the real vector header file.)

  • Another header file issue is that newer compilers can use a more platform-independent commands to include standard C libraries. For example, you should be able to use
      #include <cstdio>

instead of

      #include <stdio.h>
  • All of the code on this site assumes that the correct namespace has been designated. If your compiler is a little old, then you might be able to get away with using simple statements like:
      cout << "hello world!";

However, newer compilers require that you either use

      std::cout << "hello world!";

or declare what namespace to use with the “using namespace” command.

  • Certain popular compilers (like the one shipped with Microsoft's Visual C++) have added alternative or additional functionality to the C++ Standard Template Library. For example, the MFC in Visual C++ provides you with the string type “CString”, which has string functionality but is not part of the C++ STL.

…The list goes on and on. In other words, individual results may vary.

You've got an error in this site.

If you find any errors in this reference, please feel free to fix them. Or you can contact us at comments@cppreference.com.

What's up with this site?

Think of it as a community service, for geeks, by geeks.