Latest commit 77c0632 Oct 20, 2016 @zygoloid zygoloid [dcl.init.aggr] Replace incorrect "anonymous bit-fields" with "unnamed
bit-fields". Move restriction that only non-static data members are
aggregate elements into the definition of aggregate elements, and demote
the other occurrence of this rule to a note.

Due to an obviously-accidental wording oversight, the previous
formulation technically included member functions and member classes as
aggregate elements. This reformulation avoids that problem.


C++ Standard Draft Sources

These are the sources used to generate drafts of the C++ standard. These sources should not be considered an ISO publication, nor should documents generated from them unless officially adopted by the C++ working group (ISO/IEC JTC1/SC22/WG21).

Get involved:

More information about the C++ standard can be found at isocpp.org.

Getting Started on Mac OS X

Install the MacTeX distribution.

If you are on a slow network, you'll want to get the BasicTeX package instead, then run the following command to install the other packages that the draft requires:

sudo tlmgr install latexmk isodate substr relsize ulem fixme rsfs


To typeset the draft document, from the source directory:

  1. run latexmk -pdf std

That's it! You should now have an std.pdf containing the typeset draft.

Alternative instructions

If you can't use latexmk for some reason, you can use the Makefiles instead:

  1. run make rebuild
  2. run make reindex

If you can't use latexmk or make for some reason, you can run LaTeX manually instead:

  1. run pdflatex std until there are no more changed labels or changed tables
  2. run makeindex generalindex
  3. run makeindex libraryindex
  4. run makeindex grammarindex
  5. run makeindex impldefindex
  6. run makeindex -s basic.gst -o xrefindex.gls xrefindex.glo
  7. run pdflatex std twice more.

Generated input files

To regenerate figures from .dot files, run:

dot -o<pdfname> -Tpdf <dotfilename>

For example:

dot -ofigstreampos.pdf -Tpdf figstreampos.dot


A great deal of gratitude goes out to Pete Becker for his amazing work in the original conversion of the C++ standard drafts to LaTeX, and his subsequent maintenance of the standard drafts up to C++11. Thank you Pete.

Thanks to Walter Brown for suggesting the use of latexmk.