C++ standard library reference

Overview

Information

This is source package for Cppreference C++ standard library reference documentation available at http://en.cppreference.com.

If there is no 'reference/' subdirectory in this package, the actual documentation is not present here and must be obtained separately in order to build the binary package. This can be done in two ways:

  1. Downloading a prepared archive from http://en.cppreference.com/w/Cppreference:Archives. This method is preferred.

  2. Running make source which will pull the documentation directly from the website page-by-page. You should not normally use this method. The download script is updated to take into account any changes of the website only when there's new release at http://en.cppreference.com/w/Cppreference:Archives. If the layout of the website has changed since the last release, the download script might not work. Also, it puts unnecessary load on the servers. Please do not use this method unless you know what you are doing.

Note, that abovementioned documentation is still a raw copy of the website and needs to be transformed in order to be suitable for local viewing. Three documentation formats are currently supported:

  1. Plain html documentation. Can be generated using make doc_html. The result of the transformation will be placed at the 'output/reference' subdirectory.

  2. Devhelp documentation format. Can be generated using make doc_devhelp. make install installs the documentation into proper locations.

  3. QT Help documentation format (.qch). Can be generated using make doc_qch. make install installs the documentation into proper locations.

Simply running make all will generate documentation in all three formats.

Running make release will generate the release archives which are uploaded to http://en.cppreference.com/w/Cppreference:Archives.

Dependencies

The package depends on 'wget' (>=1.15), 'python3', 'python3-lxml', and 'qhelpgenerator' for the generation of the documentation.

See also

Debian packaging information for this package is maintained at https://github.com/p12tic/cppreference-doc_debian

Comments
  • Use https

    Use https

    I am embedding pages from cppreference in an iframe from a web app (the jupyter notebook), which fetches the resources from cppreference based on some tag file.

    The problem is that when the connection to jupyter is https, the CORS setting disallow loading content from an insecure source. Would it be possible for cppreference to be served over https?

    opened by SylvainCorlay 32
  • The offline archive is unreadable

    The offline archive is unreadable

    Hello, i wanted to get the offline version of the archive, but it's unformated. I cannot read anything out of it, it doesn't look anything like the website. I believe it didn't import it correctly.

    link: http://en.cppreference.com/w/File:cppreference-doc-20161029.zip

    opened by Wolk 8
  • C++ Index

    C++ Index

    (maybe)

    <class name="std::err_c" link="cpp/error/err_c">
    

    should be:

    <class name="std::errc" link="cpp/error/errc">
    
    opened by Kapeli 8
  • Headers for C?

    Headers for C?

    In this repo the headers for C++ are present. Is a similar effort available for the C headers (eg, string.h, etc) available? I notice those headers are described on cppreference so I was curious where I might find those. Thanks!

    opened by jsinglet 4
  • Link fixes

    Link fixes

    This fixes two small issues:

    • A wrong link in the site CSS caused a missing icon for external links to PDF files.
    • Images have an info icon that links to the online info page for the image file.
    opened by PeterFeicht 4
  • Preprocess: handle Ranges placeholders and avoid unnecessary regex use

    Preprocess: handle Ranges placeholders and avoid unnecessary regex use

    This handles the new Ranges placeholder links, which are replaced by JS on the site but remain absolute when downloaded (because they result in a 404 status) and replaces them by proper relative links during HTML preprocessing.

    There's also some small changes to regular expression use: use raw string literals for regex strings, and avoid unnecessary regex use which can be replaced by simple string operations.

    opened by PeterFeicht 4
  • [REQUEST] Update offline archive

    [REQUEST] Update offline archive

    The offline archive is old and outdated.

    Can you please update the offline archive ( HTML Book )? I tried to contact the website with their mail but I didn't get any respond...

    opened by NSbuilder 4
  • Keyword lookup when using Clang's/OSX libc++ (w/fix)

    Keyword lookup when using Clang's/OSX libc++ (w/fix)

    When using QCH files together with Clang on OSX it does not find any keywords using F1. The reason for that is libc++ adds extra prefix to the namespace.

    So std::basic_ifstream::is_open method is resolved and looked up in Qt Creator as std::__LIBCPP_ABI_VERSION::basic_ifstream::is_open.

    A simple trivial workaround is to generate libc++ keyword version as a post-process step of QCH generation using following SQL (sqlite3) script:

     insert into IndexTable (Name, Identifier, NamespaceId, FileId, Anchor) select Name, replace(Identifier, 'std::', 'std::___LIBCPP_ABI_VERSION::'), NamespaceId, FileId, Anchor from IndexTable;
    

    Or add this to some pre-process Python script.

    opened by nanoant 4
  • C Index

    C Index

    <function name="towlower" link="c/string/wide/tolower"/>
    <function name="towupper" link="c/string/wide/toupper"/>
    

    should be:

    <function name="towlower" link="c/string/wide/towlower"/>
    <function name="towupper" link="c/string/wide/towupper"/>
    
    opened by Kapeli 4
  • Fix QCH build

    Fix QCH build

    This changes the file extension of the qhelpgenerator input file to use a .qhp extension instead of .xml. This is required because an update to qhelpgenerator now rejects the .xml extension.

    opened by PeterFeicht 3
  • Feature request: select language version

    Feature request: select language version

    It's really nice that pages like https://en.cppreference.com/w/cpp/language/constexpr include information about many versions of the language! That said, if one happens to just be interested in a specific version of the language, then the inapplicable information can be a bit noisy and distracting. For example, quite often all I want to know is "how does feature X work in C++17?", not "what was the detailed evolution of feature X over the complete history of C++?".

    So maybe a useful feature could be to have a button somewhere near the top of the page, that lets the user select a language version. The effect of selecting a language version would be that text inapplicable to that standard version would be omitted. For example, if you select C++17, then obsolete rules that only applied "(until C++14)" or "(until C++17)" would not be shown.

    What do you think? :)

    opened by Eelis 3
  • doxygen tag files miss many C++20 things

    doxygen tag files miss many C++20 things

    e.g. the concepts from std:: and std::ranges; all the view adaptors...

    I could make PRs for this, but I have no clue how. Is there documentation somewhere on how to contribute these?

    opened by h-2 0
  • generate manpage or devhelp for non-c++ c11/c17

    generate manpage or devhelp for non-c++ c11/c17

    it's on the website, for c-only programmers, is it possible to manpage or devhelp to all those C information(e.g. no cstdio but stdio.h) along with c-only examples?

    opened by laoshaw 0
  • doxygen tag-files are missing function-like keywords (e.g. static_assert)

    doxygen tag-files are missing function-like keywords (e.g. static_assert)

    This is probably the same as #78, but I'm not sure.

    The tag-files seem to be missing multiple entries. I'm specifically looking at static_assert. It shows up in link-map.xml yet not in any of the .tag files. I tried adding it to index-functions-cpp.xml, yet that has no effect.

    opened by cmorty 3
  • QCH fonts are too large

    QCH fonts are too large

    When compared to the Qt documentation, cppreference appears to have really large fonts. And the problem is exacerbated with current Qt5 versions which lack QtWebKit, so one can't even scale down the main text: only the caption scales.

    The fonts appear correct in the official QCH book release 20170409, and are already too large in the 20181028 release. And this problem remains with the releases made from this repo.

    See the following screenshots for comparison between Qt docs and C++ docs.

    QString docs @ Qt5 Assistant: QString @ Qt5 Assistant

    std::string docs @ Qt5 Assistant: std::string docs @ Qt5 Assistant

    Even if I open in Qt4 Assistant built with QtWebKit support, the fonts are too large, although the content is easier to scale (and formatting is less broken, but this is another issue, #47).

    std::string docs @ Qt4 Assistant: std::string docs @ Qt4 Assistant

    opened by 10110111 2
Owner
Povilas Kanapickas
Povilas Kanapickas
This is a simple UNITEST to test the implementation of the the various container types of the C++ standard template library

ft_container UNITest. This is a simple UNITEST to test the implementation of the the various container types of the C++ standard template library that

Mohamed AMOUSSAOUI 43 Nov 12, 2022
C++ Type Traits for Smart Pointers that are not included in the standard library, containing inheritance detection and member detection.

Smart Pointer Type Trait ?? A simple, header-only cpp library implementing smart pointer type traits. You can easily compile your code diffrently depe

Woon2 12 Sep 14, 2022
Ideas, thoughts, and notes on a typeclass/interface based polymorphism pattern for standard C

Polymorphism through Typeclasses / Interface / Traits Ideas, thoughts, and notes on an action based polymorphism pattern for good ol' C. Originally us

Chase 24 Oct 18, 2022
This is a C/C++ simulation project which illustrates the framing of standard ethernet protocol

This is a C/C++ simulation project which illustrates the framing of standard ethernet protocol. It creates server and client processes on the same machine and through IPC, it sends the data from the client to the server in a simplex communication.

P Punyacharan 7 Oct 14, 2022
This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

?? C/C++ 技术面试基础知识总结,包括语言、程序库、数据结构、算法、系统、网络、链接装载库等知识及面试经验、招聘、内推等信息。This repository is a summary of the basic knowledge of recruiting job seekers and beginners in the direction of C/C++ technology, including language, program library, data structure, algorithm, system, network, link loading library, interview experience, recruitment, recommendation, etc.

huihut 26.7k Nov 28, 2022
Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

Minimal Linux Live (MLL) is a tiny educational Linux distribution, which is designed to be built from scratch by using a collection of automated shell scripts. Minimal Linux Live offers a core environment with just the Linux kernel, GNU C library, and Busybox userland utilities.

John Davidson 1.3k Nov 25, 2022
A cheatsheet of modern C++ language and library features.

C++20/17/14/11 Overview Many of these descriptions and examples come from various resources (see Acknowledgements section), summarized in my own words

Anthony Calandra 15.2k Nov 24, 2022
A library of language lexers for use with Scintilla

README for Lexilla library. The Lexilla library contains a set of lexers and folders that provides support for programming, mark-up, and data languag

Scintilla 87 Nov 10, 2022
Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable executables. Has a modern C++ wrapper.

memscan Feature-rich C99 library for memory scanning purposes, designed for Windows running machines, meant to work on both 32-bit and 64-bit portable

cristei 15 Oct 2, 2022
A single file C++ header-only minizip wrapper library

cpp-zipper A single file C++ header-only minizip wrapper library This code is based on 'Making MiniZip Easier to Use' by John Schember. https://nachti

null 7 Nov 4, 2022
C++20 Concepts IO library which is 10x faster than stdio and iostream

fast_io fast_io is a new C++20 library for extremely fast input/output and aims to replace iostream and cstdio. It is header-only (module only in the

null 153 Feb 16, 2022
Modern, header-only, compact and cross platform C++ network/sockets library

cpp-net-lib Modern, header-only, compact and cross-platform C++ network/sockets library. Don't mind the crappy name, I suck at naming things. Why? I n

Marc 10 Jul 20, 2022
Instant compile time C++ 11 metaprogramming library

Brigand Meta-programming library Introduction Brigand is a light-weight, fully functional, instant-compile time C++ 11 meta-programming library. Every

Edouard A. 552 Nov 21, 2022
C++98 library that encapsulates memory-mapped-files for POSIX or Windows

Memory-Mapped File C++ Library Tutorial and Reference Purpose This is a library, for the C++98 language and its successive versions, to handle files a

Carlo Milanesi 81 Nov 3, 2022
Connect 4 clone written with c++ with the RSGL library. Based on my connect 4 clone written in python/pygame and my SDL port of that same repo. Along with 3DS support by SaCode

RSGL-Connect-4 Building linux git clone https://github.com/RSGL-Org/RSGL-Connect-4.git cd RSGL-Connect-4 make ./Connect4 Bulding 3ds (3ds support

RSGL 2 Dec 11, 2021
High performance library for creating, modiyfing and parsing PDF files in C++

Welcome to PDF-Writer. A Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams. Documentation is available here. Proje

gal kahana 671 Nov 26, 2022
The standard Packet Batch application that uses standard Linux sockets (AF_PACKETv3) for packet generation.

Packet Batch (Standard) Description This is the standard Packet Batch application that utilizes AF_PACKETv3 Linux sockets. Due to AF_PACKETv3 Linux so

Packet Batch 7 Oct 28, 2022
`lv_lib_100ask` is a reference for various out of the box schemes based on lvgl library or an enhanced interface for various components of lvgl library.

Introduction lv_lib_100ask is a reference for various out of the box schemes based on lvgl library or an enhanced interface for various components of

100askTeam 31 Nov 26, 2022
C++ library for Unicode Strings, with value semantics on reference-counted shared slices

strpp - StringPlusPlus - pronounced "strip" A value-oriented character string library with reference-counting to manage shared slices Features By-valu

Clifford Heath 5 Apr 27, 2022
A collecton of generic reference counted data structures, tools to create compatible C style classes, and demo applications

The Offbrand library is a collection of reference counted generic data structures written in C for C. The library includes bash scripts to assist in t

Tyler Heck 81 Nov 21, 2022