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

Issues
  • 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
  • Bump lxml from 4.6.5 to 4.9.1

    Bump lxml from 4.6.5 to 4.9.1

    Bumps lxml from 4.6.5 to 4.9.1.

    Changelog

    Sourced from lxml's changelog.

    4.9.1 (2022-07-01)

    Bugs fixed

    • A crash was resolved when using iterwalk() (or canonicalize()) after parsing certain incorrect input. Note that iterwalk() can crash on valid input parsed with the same parser after failing to parse the incorrect input.

    4.9.0 (2022-06-01)

    Bugs fixed

    • GH#341: The mixin inheritance order in lxml.html was corrected. Patch by xmo-odoo.

    Other changes

    • Built with Cython 0.29.30 to adapt to changes in Python 3.11 and 3.12.

    • Wheels include zlib 1.2.12, libxml2 2.9.14 and libxslt 1.1.35 (libxml2 2.9.12+ and libxslt 1.1.34 on Windows).

    • GH#343: Windows-AArch64 build support in Visual Studio. Patch by Steve Dower.

    4.8.0 (2022-02-17)

    Features added

    • GH#337: Path-like objects are now supported throughout the API instead of just strings. Patch by Henning Janssen.

    • The ElementMaker now supports QName values as tags, which always override the default namespace of the factory.

    Bugs fixed

    • GH#338: In lxml.objectify, the XSI float annotation "nan" and "inf" were spelled in lower case, whereas XML Schema datatypes define them as "NaN" and "INF" respectively.

    ... (truncated)

    Commits
    • d01872c Prevent parse failure in new test from leaking into later test runs.
    • d65e632 Prepare release of lxml 4.9.1.
    • 86368e9 Fix a crash when incorrect parser input occurs together with usages of iterwa...
    • 50c2764 Delete unused Travis CI config and reference in docs (GH-345)
    • 8f0bf2d Try to speed up the musllinux AArch64 build by splitting the different CPytho...
    • b9f7074 Remove debug print from test.
    • b224e0f Try to install 'xz' in wheel builds, if available, since it's now needed to e...
    • 897ebfa Update macOS deployment target version from 10.14 to 10.15 since 10.14 starts...
    • 853c9e9 Prepare release of 4.9.0.
    • d3f77e6 Add a test for https://bugs.launchpad.net/lxml/+bug/1965070 leaving out the a...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 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 38 Aug 5, 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 11 Dec 22, 2021
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 23 Jul 29, 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 6 Sep 7, 2021
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 25.2k Aug 7, 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 Aug 2, 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 14.5k Aug 8, 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 69 Aug 1, 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 11 Apr 21, 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 5 Jun 16, 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. 549 Jul 23, 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 80 Feb 10, 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 652 Aug 8, 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 5 Feb 24, 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 17 Jul 25, 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 82 Mar 4, 2022
CommonMark spec, with reference implementations in C and JavaScript

CommonMark CommonMark is a rationalized version of Markdown syntax, with a spec and BSD-licensed reference implementations in C and JavaScript. Try it

CommonMark 4.6k Aug 6, 2022
vulnerability in zam64.sys, zam32.sys allowing ring 0 code execution. CVE-2021-31727 and CVE-2021-31728 public reference.

CVE-2021-31727 and CVE-2021-31728 Public Reference for CVE-2021-31727 Exposes unrestricted disk read/write capabilities. Public Reference for CVE-2021

null 63 Jul 22, 2022
llvm-tutor is a collection of self-contained reference LLVM passes

llvm-tutor is a collection of self-contained reference LLVM passes. It's a tutorial that targets novice and aspiring LLVM developers.

Andrzej Warzyński 1.7k Aug 5, 2022
JPEG XL image format reference C++ implementation

This repository contains a reference implementation of JPEG XL (encoder and decoder), called libjxl.

libjxl 651 Aug 7, 2022
Reference implementations of post-quantum cryptographic primitives

PQ Crypto Catalog Implementation of quantum-safe signature and KEM schemes submitted to NIST PQC Standardization Process. The goal is to provide an ea

Kris Kwiatkowski 21 Jul 7, 2022
refterm is a reference renderer for monospace terminal displays.

refterm v2 refterm is a reference renderer for monospace terminal displays. It was designed to demonstrate that even in the worst-case scenario - extr

Casey Muratori 1.3k Aug 5, 2022
Total 21 math problem solved by c language with 4 types of functional reference. Also added circular repeated linked list system of Data structure.

C-ProblemSolve Total 21 math problem solved by c language with 4 types of functional reference. Also added circular repeated linked list system of Dat

MH Miyazi 3 Aug 28, 2021
C++11/14/17 std::optional with functional-style extensions and reference support

optional Single header implementation of std::optional with functional-style extensions and support for references. Clang + GCC: MSVC: std::optional i

Sy Brand 663 Jul 31, 2022
code reference materials reguarding ip support session

ip-support This repository includes the necessary reference code for ip support sessions @SLIIT Malabe. These IP support sessions are conducted by the

Sanuja Methmal 3 Nov 24, 2021