-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathprimer.tex
112 lines (100 loc) · 3.88 KB
/
primer.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[pdftex, hidelinks,
colorlinks, allcolors={blue!70!black},
pdftitle={C++ Concepts Primer},
pdfauthor={Erik Sven Vasconcelos Jansson},
pdfsubject={Programming Languages - C++},
pdfkeywords={c++, concepts}]{hyperref}
\usepackage{bm}
\usepackage{textcomp}
\usepackage{caption}
\usepackage{listings}
\usepackage{pdfpages}
\usepackage{booktabs}
\usepackage{setspace}
\usepackage{mathtools}
\usepackage{blindtext}
\usepackage{pgfornament}
\usepackage{algorithmic}
\usepackage{graphicx}
\usepackage{makecell}
\usepackage{courier}
\usepackage{acronym}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{siunitx}
\usepackage{relsize}
\usepackage{algorithm}
\usepackage{algorithm}
\usepackage[capitalize, noabbrev]{cleveref}
\usepackage[activate={true, nocompatibility}, final,
tracking=true, kerning=true, spacing=true,
factor=1100, stretch=10, shrink=10]{microtype}
\makeatletter
\begingroup
\catcode`\$=6 %
\catcode`\#=12 %
\gdef\href@split$1#$2#$3\\$4{%
\hyper@@link{$1}{$2}{\underline{$4}}%
\endgroup
}%
\endgroup
\newcommand\Cpp{C\nolinebreak[4]\hspace{.05em}\raisebox{.4ex}{\relsize{-3}{\textbf{++}}}}
\DeclareCaptionFormat{modifiedlst}{\rule{\linewidth}{0.85pt}\\[-2.9pt]#1#2#3}
\captionsetup[lstlisting]{format = modifiedlst,
labelfont=bf,singlelinecheck=off,labelsep=space}
\lstset{basicstyle=\footnotesize\ttfamily,
breakatwhitespace = false,
numberstyle=\tiny,
breaklines = true,
keepspaces = true,
language = C++,
showspaces = false,
showstringspaces = false,
frame = tb,
numbers = left,
numbersep = 5pt,
xleftmargin = 16pt,
framexleftmargin = 16pt,
belowskip = \bigskipamount,
aboveskip = \bigskipamount,
escapeinside = {<@}{@>},
morekeywords = {
concept,
requires,
noexcept,
T, U, N,
decltype,
size_t,
R, C,
constexpr,
point2,
Matrix,
NumberFactory,
Range, Iterator,
In1, In2, Out,
}}
\title{\vspace{-1.5em}\textbf{\Cpp\ Concepts Primer:}\\
\large{\emph{``defining and applying constraints''}}}
\author{{\textbf{Erik Sven Vasconcelos Jansson}} \\
{\href{mailto:erik.s.v.jansson@tum.de}
{\texttt{<erik.s.v.jansson@tum.de>}}} \\
{at Technische Universität München}}
\begin{document}
\maketitle \begin{spacing}{0.94} \tableofcontents \end{spacing}
\mbox{} \\ \noindent \textbf{Warning:} the author is neither an expert or a member of the standardization committee; only a fool would take everything that is written here as the truth. However, the author has tried (within his knowledge) to keep this document as accurate as possible. If you, the reader, find any mistakes in this document, please send an e-mail (or even better, create an issue on \href{https://github.com/CaffeineViking/concepts-primer}{GitHub}, and fix it!) \mbox{} \thispagestyle{empty} \newpage \pagenumbering{arabic}
\input{sections/introduction.tex}
\input{sections/generic_programming.tex}
\input{sections/concepts.tex} \newpage
\input{sections/terse_syntax.tex} \newpage
\label{sec:standard_library_concepts} \input{sections/standard_library_concepts.tex} \newpage
\label{sec:summary} \input{sections/summary.tex} \newpage
\pagenumbering{gobble}
\nocite{*} % TODO: remove
\bibliographystyle{alpha}
\bibliography{primer}
\section*{Acknowledgements} \label{sec:acknowledgements} \input{sections/acknowledgements.tex}
You may find the short \href{https://github.com/CaffeineViking/concepts-primer/blob/master/slides/slides.pdf}{presentation} for the seminar above, useful as well.
\end{document}