Frequently Asked Questions

Can I get a copy of this site?

We do provide a downloadable archived version of cppreference.com. If you're interested in getting archived versions of websites in general, you might want to check out utilities like GNU's wget (Windows version here).

In addition, James Heany has compiled a PDF version of the site (as of October 2007) that is available for download. There is a C++ Reference PDF and a STL Reference PDF available for download.

Also, James Brown has generously shared a set of Perl scripts that convert the content on this site to compiled help (CHM) format. His archive includes a CHM of the site (as of March 2008), Perl scripts, and instructions.

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

Sure, that would be great! All that we would ask is that you include a link back to this site so that people know where to get the most up-to-date content.

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/C++, try one of these sites:

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

Few things in life are absolute. Many C/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 Standard C and C++ specification, not every compiler will support every function listed here. For example,
  • Header files change like mad. To include the necessary support for C++ 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 contact us -- feedback and code examples are always welcome.

What's up with this site?

Think of it as a community service, for geeks.