%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–'‹L‘Œ‰Pf$Ë%iΓ…R9a…ÔÂ__=ú÷g„³4¹ºN¸HIªdâ…®Vÿš=Ùm—Õ¾=Ì<¥³ë]c¿yòø1ýyþ韛 9Œà~çM5çéì¶>Ô»­gZÔZ±ÔX[°4'Y.áÕœä3¯>ÝoÖ¥³ö¬©æ,Ý€Qó:‡`‘"Ó/C›SÆI„°6c„$LÉ¢—zQ5Õæ“Õþ¶®>Žôj—2è÷×[—¬æwsIgõz½Ü-Çrèµ"}¸çeùñãœÑÙÎÚxa‚/Э”Pe¤~€GæÁ‚¥„þpOÊæ¶ùÂr’+<ÖM¼( ‡3æ¹Õöf·-×+×Ke³¬Ë‘nU€k™Q^L¶Sæ¤à®Vê«íª1øüdµwÜVe½­F x‰«¡Gß\uØÃÈJUFRøŒ øõ"xîǸ¤”é©”pÊ:ÆÚ( -