OLD | NEW |
---|---|
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <!-- | 2 <!-- |
3 Copyright 2014 The Chromium Authors. All rights reserved. | 3 Copyright 2014 The Chromium Authors. All rights reserved. |
4 Use of this source code is governed by a BSD-style license that can be | 4 Use of this source code is governed by a BSD-style license that can be |
5 found in the LICENSE file. | 5 found in the LICENSE file. |
6 --> | 6 --> |
7 <html> | 7 <html> |
8 <head> | 8 <head> |
9 <meta charset="utf-8"> | 9 <meta charset="utf-8"> |
10 <link rel="stylesheet" href="c++11.css"> | 10 <link rel="stylesheet" href="c++11.css"> |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
59 <td>Angle Bracket Parsing in Templates</td> | 59 <td>Angle Bracket Parsing in Templates</td> |
60 <td><code>>></code> for <code>> ></code> and <br /> | 60 <td><code>>></code> for <code>> ></code> and <br /> |
61 <code><::</code> for <code>< ::</code></td> | 61 <code><::</code> for <code>< ::</code></td> |
62 <td>More intuitive parsing of template parameters</td> | 62 <td>More intuitive parsing of template parameters</td> |
63 <td><a href="http://stackoverflow.com/questions/15785496/c-templates-angle-brack ets-pitfall-what-is-the-c11-fix"> | 63 <td><a href="http://stackoverflow.com/questions/15785496/c-templates-angle-brack ets-pitfall-what-is-the-c11-fix"> |
64 C++ Templates Angle Brackets Pitfall</a></td> | 64 C++ Templates Angle Brackets Pitfall</a></td> |
65 <td>Recommended to increase readability. Approved without discussion.</td> | 65 <td>Recommended to increase readability. Approved without discussion.</td> |
66 </tr> | 66 </tr> |
67 | 67 |
68 <tr> | 68 <tr> |
69 <td>Final Specifier</td> | |
70 <td><code>final</code></td> | |
71 <td> Indicates that a class or function is final and cannot be overridden</td> | |
72 <td><a href="http://en.cppreference.com/w/cpp/language/final">final Language Ref erence</a></td> | |
73 <td>All uses of the old <code>FINAL</code> macro will be replaced throughout the codebase. Uses should conform to the <a href="http://google-styleguide.googleco de.com/svn/trunk/cppguide.html#Inheritance">C++ style guide</a>. | |
Nico
2014/09/24 21:46:14
Add "Recommended for new code." at the beginning,
dcheng
2014/09/24 21:50:50
I've replaced this text to indicate that we prefer
| |
74 </tr> | |
75 | |
76 <tr> | |
69 <td>Local Types as Template Arguments</td> | 77 <td>Local Types as Template Arguments</td> |
70 <td></td> | 78 <td></td> |
71 <td>Allows local and unnamed types as template arguments</td> | 79 <td>Allows local and unnamed types as template arguments</td> |
72 <td><a href="http://stackoverflow.com/questions/742607/using-local-classes-with- stl-algorithms"> | 80 <td><a href="http://stackoverflow.com/questions/742607/using-local-classes-with- stl-algorithms"> |
73 Local types, types without linkage and unnamed types as template arguments</a></ td> | 81 Local types, types without linkage and unnamed types as template arguments</a></ td> |
74 <td>Usage should be rare. Approved without discussion.</td> | 82 <td>Usage should be rare. Approved without discussion.</td> |
75 </tr> | 83 </tr> |
76 | 84 |
77 <tr> | 85 <tr> |
78 <td>Standard Integers</td> | |
79 <td>Typedefs within <code><stdint.h></code> | |
80 and <code><inttypes></code></td> | |
81 <td>Provides fixed-size integers independent of platforms</td> | |
82 <td><a href="http://www.cplusplus.com/reference/cstdint/"> | |
83 <stdint.h> (cstdint)</a></td> | |
84 <td>Already in common use in the codebase. Approved without discussion.</td> | |
85 </tr> | |
86 | |
87 <tr> | |
88 <td>Null Pointer Constant</td> | 86 <td>Null Pointer Constant</td> |
89 <td><code>nullptr</code></td> | 87 <td><code>nullptr</code></td> |
90 <td>Declares a type-safe null pointer</td> | 88 <td>Declares a type-safe null pointer</td> |
91 <td>TODO: documentation link</td> | 89 <td>TODO: documentation link</td> |
92 <td>Recommended for new code. | 90 <td>Recommended for new code. |
93 <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/4mi jeJHzxLg">Discussion thread</a>. | 91 <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/4mi jeJHzxLg">Discussion thread</a>. |
94 <a href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#0_and_ nullptr/NULL">Google Style Guide</a>. | 92 <a href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#0_and_ nullptr/NULL">Google Style Guide</a>. |
95 Note: <code>std::nullptr_t</code> is a library feature and not available. | 93 Note: <code>std::nullptr_t</code> is a library feature and not available. |
96 </td> | 94 </td> |
97 </tr> | 95 </tr> |
98 | 96 |
97 <tr> | |
98 <td>Override Specifier</td> | |
99 <td><code>override</code></td> | |
100 <td>Indicates that a class or function overrides a base implementation</td> | |
101 <td><a href="http://en.cppreference.com/w/cpp/language/override">override Langua ge Reference</a></td> | |
102 <td>All uses of the old <code>OVERRIDE</code> macro will be replaced throughout the codebase. Uses should conform to the <a href="http://google-styleguide.googl ecode.com/svn/trunk/cppguide.html#Inheritance">C++ style guide</a>. | |
103 </tr> | |
104 | |
105 <tr> | |
106 <td>Standard Integers</td> | |
107 <td>Typedefs within <code><stdint.h></code> | |
108 and <code><inttypes></code></td> | |
109 <td>Provides fixed-size integers independent of platforms</td> | |
110 <td><a href="http://www.cplusplus.com/reference/cstdint/"> | |
111 <stdint.h> (cstdint)</a></td> | |
112 <td>Already in common use in the codebase. Approved without discussion.</td> | |
113 </tr> | |
114 | |
99 </tbody> | 115 </tbody> |
100 </table> | 116 </table> |
101 | 117 |
102 <h2 id="blacklist">C++11 Blacklist (Disallowed and Banned Features)</h2> | 118 <h2 id="blacklist">C++11 Blacklist (Disallowed and Banned Features)</h2> |
103 | 119 |
104 <p>This section lists features that are not allowed to be used yet. | 120 <p>This section lists features that are not allowed to be used yet. |
105 | 121 |
106 <h3 id="blacklist_banned">C++11 Banned Features</h3> | 122 <h3 id="blacklist_banned">C++11 Banned Features</h3> |
107 | 123 |
108 <p>None yet! This section will list C++11 features that are not allowed in the | 124 <p>None yet! This section will list C++11 features that are not allowed in the |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
260 <td>Explicit Conversion Operators</td> | 276 <td>Explicit Conversion Operators</td> |
261 <td><code>explicit operator <i>type</i>() { | 277 <td><code>explicit operator <i>type</i>() { |
262 <br /> // code<br /> }</code></td> | 278 <br /> // code<br /> }</code></td> |
263 <td>Allows conversion operators that cannot be implicitly invoked</td> | 279 <td>Allows conversion operators that cannot be implicitly invoked</td> |
264 <td><a href="http://en.cppreference.com/w/cpp/language/explicit"> | 280 <td><a href="http://en.cppreference.com/w/cpp/language/explicit"> |
265 explicit specifier</a></td> | 281 explicit specifier</a></td> |
266 <td></td> | 282 <td></td> |
267 </tr> | 283 </tr> |
268 | 284 |
269 <tr> | 285 <tr> |
270 <td>Final Declarations</td> | |
271 <td><code>final</code></td> | |
272 <td>Indicates that a class or function is final and cannot be overridden</td> | |
273 <td>TODO: documentation link</td> | |
274 <td><code>FINAL</code> is already widely used in the codebase.</td> | |
275 </tr> | |
276 | |
277 <tr> | |
278 <td>Function Local Variable</td> | 286 <td>Function Local Variable</td> |
279 <td><code>__func__</code></td> | 287 <td><code>__func__</code></td> |
280 <td>Provides a local variable of the name of the enclosing | 288 <td>Provides a local variable of the name of the enclosing |
281 function for logging purposes</td> | 289 function for logging purposes</td> |
282 <td><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum= 338"> | 290 <td><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum= 338"> |
283 The __func__ Predeclared Identifier is Coming to C++</a></td> | 291 The __func__ Predeclared Identifier is Coming to C++</a></td> |
284 <td></td> | 292 <td></td> |
285 </tr> | 293 </tr> |
286 | 294 |
287 <tr> | 295 <tr> |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
336 <i>type</i> <i>var</i> = <i>value</i>;<br/> | 344 <i>type</i> <i>var</i> = <i>value</i>;<br/> |
337 C() // copy-initializes <i>var</i><br/> | 345 C() // copy-initializes <i>var</i><br/> |
338 </code> | 346 </code> |
339 <td>Allows non-static class members to be initialized at their definitions (outs ide constructors)</td> | 347 <td>Allows non-static class members to be initialized at their definitions (outs ide constructors)</td> |
340 <td><a href="http://en.cppreference.com/w/cpp/language/data_members"> | 348 <td><a href="http://en.cppreference.com/w/cpp/language/data_members"> |
341 Non-static data members</a></td> | 349 Non-static data members</a></td> |
342 <td></td> | 350 <td></td> |
343 </tr> | 351 </tr> |
344 | 352 |
345 <tr> | 353 <tr> |
346 <td>Overrides</td> | |
347 <td><code>override</code></td> | |
348 <td>Indicates that a class or function overrides a base implementation</td> | |
349 <td>TODO: documentation link</td> | |
350 <td><code>OVERRIDE</code> is already widely used in the codebase.</td> | |
351 </tr> | |
352 | |
353 <tr> | |
354 <td>Range-Based For Loops</td> | 354 <td>Range-Based For Loops</td> |
355 <td><code>for (<i>type</i> <i>var</i> : <i>range</i>)</code></td> | 355 <td><code>for (<i>type</i> <i>var</i> : <i>range</i>)</code></td> |
356 <td>Facilitates a more concise syntax for iterating over the elements | 356 <td>Facilitates a more concise syntax for iterating over the elements |
357 of a container (or a range of iterators) in a <code>for</code> loop</td> | 357 of a container (or a range of iterators) in a <code>for</code> loop</td> |
358 <td>TODO: documentation link</td> | 358 <td>TODO: documentation link</td> |
359 <td></td> | 359 <td></td> |
360 </tr> | 360 </tr> |
361 | 361 |
362 <tr> | 362 <tr> |
363 <td>Raw String Literals</td> | 363 <td>Raw String Literals</td> |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
945 </tr> | 945 </tr> |
946 | 946 |
947 </tbody> | 947 </tbody> |
948 </table> | 948 </table> |
949 | 949 |
950 </details> | 950 </details> |
951 | 951 |
952 </div> | 952 </div> |
953 </body> | 953 </body> |
954 </html> | 954 </html> |
OLD | NEW |