%PDF-1.4
5 0 obj
<< /S /GoTo /D (section.1) >>
endobj
8 0 obj
(Changes from N1758)
endobj
9 0 obj
<< /S /GoTo /D (section.2) >>
endobj
12 0 obj
(Overview)
endobj
13 0 obj
<< /S /GoTo /D (section.3) >>
endobj
16 0 obj
(Design rationale)
endobj
17 0 obj
<< /S /GoTo /D (subsection.3.1) >>
endobj
20 0 obj
(Background research)
endobj
21 0 obj
<< /S /GoTo /D (subsection.3.2) >>
endobj
24 0 obj
(Template compilation model)
endobj
25 0 obj
<< /S /GoTo /D (subsection.3.3) >>
endobj
28 0 obj
(Specific language features in the design space)
endobj
29 0 obj
<< /S /GoTo /D (subsubsection.3.3.1) >>
endobj
32 0 obj
(Named conformance vs. structural conformance)
endobj
33 0 obj
<< /S /GoTo /D (subsubsection.3.3.2) >>
endobj
36 0 obj
(Pseudo-signatures vs. valid expressions)
endobj
37 0 obj
<< /S /GoTo /D (subsubsection.3.3.3) >>
endobj
40 0 obj
(Associated types)
endobj
41 0 obj
<< /S /GoTo /D (subsubsection.3.3.4) >>
endobj
44 0 obj
(Same-type constraints)
endobj
45 0 obj
<< /S /GoTo /D (section.4) >>
endobj
48 0 obj
(Proposed language features)
endobj
49 0 obj
<< /S /GoTo /D (subsection.4.1) >>
endobj
52 0 obj
(Concepts)
endobj
53 0 obj
<< /S /GoTo /D (subsubsection.4.1.1) >>
endobj
56 0 obj
(Refinements)
endobj
57 0 obj
<< /S /GoTo /D (subsubsection.4.1.2) >>
endobj
60 0 obj
(Pseudo-signatures)
endobj
61 0 obj
<< /S /GoTo /D (subsubsection.4.1.3) >>
endobj
64 0 obj
(Associated types)
endobj
65 0 obj
<< /S /GoTo /D (subsubsection.4.1.4) >>
endobj
68 0 obj
(Nested requirements)
endobj
69 0 obj
<< /S /GoTo /D (subsection.4.2) >>
endobj
72 0 obj
(Models)
endobj
73 0 obj
<< /S /GoTo /D (subsubsection.4.2.1) >>
endobj
76 0 obj
(Verifying model correctness)
endobj
77 0 obj
<< /S /GoTo /D (subsubsection.4.2.2) >>
endobj
80 0 obj
(Implicit model member definitions)
endobj
81 0 obj
<< /S /GoTo /D (subsubsection.4.2.3) >>
endobj
84 0 obj
(Refinements and models)
endobj
85 0 obj
<< /S /GoTo /D (subsubsection.4.2.4) >>
endobj
88 0 obj
(Model identifiers)
endobj
89 0 obj
<< /S /GoTo /D (subsubsection.4.2.5) >>
endobj
92 0 obj
(Model templates)
endobj
93 0 obj
<< /S /GoTo /D (subsubsection.4.2.6) >>
endobj
96 0 obj
(Friend models)
endobj
97 0 obj
<< /S /GoTo /D (subsection.4.3) >>
endobj
100 0 obj
(Where clauses)
endobj
101 0 obj
<< /S /GoTo /D (subsubsection.4.3.1) >>
endobj
104 0 obj
(Model requirements)
endobj
105 0 obj
<< /S /GoTo /D (subsubsection.4.3.2) >>
endobj
108 0 obj
(Same-type requirements)
endobj
109 0 obj
<< /S /GoTo /D (subsubsection.4.3.3) >>
endobj
112 0 obj
(Integral constant expression requirements)
endobj
113 0 obj
<< /S /GoTo /D (subsubsection.4.3.4) >>
endobj
116 0 obj
(Constraint propagation)
endobj
117 0 obj
<< /S /GoTo /D (lstlisting.-265) >>
endobj
120 0 obj
(Partial ordering with where clauses)
endobj
121 0 obj
<< /S /GoTo /D (subsubsection.4.3.6) >>
endobj
124 0 obj
(Syntactic shortcut for single-parameter concepts)
endobj
125 0 obj
<< /S /GoTo /D (subsection.4.4) >>
endobj
128 0 obj
(Type checking templates)
endobj
129 0 obj
<< /S /GoTo /D (subsubsection.4.4.1) >>
endobj
132 0 obj
(Non-dependent template parameters)
endobj
133 0 obj
<< /S /GoTo /D (subsubsection.4.4.2) >>
endobj
136 0 obj
(Name lookup)
endobj
137 0 obj
<< /S /GoTo /D (subsubsection.4.4.3) >>
endobj
140 0 obj
(Type equivalence)
endobj
141 0 obj
<< /S /GoTo /D (subsection.4.5) >>
endobj
144 0 obj
(Extensions)
endobj
145 0 obj
<< /S /GoTo /D (subsubsection.4.5.1) >>
endobj
148 0 obj
(Partial specialization of function templates)
endobj
149 0 obj
<< /S /GoTo /D (subsubsection.4.5.2) >>
endobj
152 0 obj
(Associated values)
endobj
153 0 obj
<< /S /GoTo /D (subsubsection.4.5.3) >>
endobj
156 0 obj
(Nested class template requirements)
endobj
157 0 obj
<< /S /GoTo /D (subsubsection.4.5.4) >>
endobj
160 0 obj
(Remote specializations and models)
endobj
161 0 obj
<< /S /GoTo /D (subsubsection.4.5.5) >>
endobj
164 0 obj
(Exporting defaulted requirements)
endobj
165 0 obj
<< /S /GoTo /D (section.5) >>
endobj
168 0 obj
(Impact)
endobj
169 0 obj
<< /S /GoTo /D (subsection.5.1) >>
endobj
172 0 obj
(Impact on users)
endobj
173 0 obj
<< /S /GoTo /D (subsection.5.2) >>
endobj
176 0 obj
(Impact on the standard library)
endobj
177 0 obj
<< /S /GoTo /D (subsection.5.3) >>
endobj
180 0 obj
(Impact on compiler vendors)
endobj
181 0 obj
<< /S /GoTo /D (section.6) >>
endobj
184 0 obj
(Acknowledgments)
endobj
185 0 obj
<< /S /GoTo /D (section.A) >>
endobj
188 0 obj
(Example: Standard library concepts and declarations)
endobj
189 0 obj
<< /S /GoTo /D (subsection.A.1) >>
endobj
192 0 obj
(Helper concepts)
endobj
193 0 obj
<< /S /GoTo /D (subsection.A.2) >>
endobj
196 0 obj
(Iterator concepts)
endobj
197 0 obj
<< /S /GoTo /D (subsection.A.3) >>
endobj
200 0 obj
(Container concepts)
endobj
201 0 obj
<< /S /GoTo /D (subsection.A.4) >>
endobj
204 0 obj
(Models)
endobj
205 0 obj
<< /S /GoTo /D (subsection.A.5) >>
endobj
208 0 obj
(Algorithms)
endobj
209 0 obj
<< /S /GoTo /D [210 0 R /Fit ] >>
endobj
212 0 obj <<
/Length 2831
/Filter /FlateDecode
>>
stream
xÚímܶ¿ûWèS±wY¾¶hb'®Ø1ìk] éyWwV½oÑj/ñ¿ïðMâJÔÜ· Pgq÷î4É!Ï,¡ðÅ'¤ Y²Ü<¢É
üöÙ#æJÃgäÁBÐH'LPf$Ë%iÎ
R9a
ÔÂ__=ú÷g³4¹ºN¸HIªdâ
®Vÿ=ÙmÕ¾=Ì<¥³ë]c¿yòø1ýyþï« 9à~çM5çéì¶>Ô»gZÔZ±ÔX[°4'Y.áÕä3¯>ÝoÖ¥³ö¬©æ,ÝQó:`"Ó/CSÆI°6c$LÉ¢zQ5ÕæÕþ¶®>ôj2è÷×[¬æwsIgõz½Ü-Çrèµ"}¸çeùñãÑÙÎÚxa/ÐPe¤~GæÁ¥þpOÊæ¶ùÂr+<ÖM¼( 3æ¹Õöf·-×+×Ke³¬ËnUkQ^L¶Sæ¤à®Vê«íª1øüdµwÜVe½F
x«¡Gß\uØÃÈJUFRø
øõ"xîǸ¤é©pÊ:ÆÚ( -