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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 specific compiler implementations may use.</td> | 158 specific compiler implementations may use.</td> |
159 <td><a href="http://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generaliz
ed-attributes/"> | 159 <td><a href="http://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generaliz
ed-attributes/"> |
160 C++11 generalized attributes</a></td> | 160 C++11 generalized attributes</a></td> |
161 <td></td> | 161 <td></td> |
162 </tr> | 162 </tr> |
163 | 163 |
164 <tr> | 164 <tr> |
165 <td>Automatic Types</td> | 165 <td>Automatic Types</td> |
166 <td><code>auto</code></td> | 166 <td><code>auto</code></td> |
167 <td>Automatic type deduction</td> | 167 <td>Automatic type deduction</td> |
168 <td><a href="http://go/totw:4"> | 168 <td>TODO: documentation link</td> |
169 Tip of the Week #4: Use <code>const auto&</code> and | |
170 <code>auto</code> to replace complex declarations</a></td> | |
171 <td><a | 169 <td><a |
172 href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#auto">Goo
gle | 170 href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#auto">Goo
gle |
173 Style Guide on <code>auto</code></a></td> | 171 Style Guide on <code>auto</code></a></td> |
174 </tr> | 172 </tr> |
175 | 173 |
176 <tr> | 174 <tr> |
177 <td>Constant Expressions</td> | 175 <td>Constant Expressions</td> |
178 <td><code>constexpr</code></td> | 176 <td><code>constexpr</code></td> |
179 <td>Compile-time constant expressions</td> | 177 <td>Compile-time constant expressions</td> |
180 <td><a href="http://go/totw:57"> | 178 <td>TODO: documentation link</td> |
181 Tip of the Week #57: <code>constexpr</code> is forever</a></td> | |
182 <td>Not supported in MSVS2013. <a | 179 <td>Not supported in MSVS2013. <a |
183 href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#constexpr
">Google | 180 href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#constexpr
">Google |
184 Style Guide on <code>constexpr</code></a></td> | 181 Style Guide on <code>constexpr</code></a></td> |
185 </tr> | 182 </tr> |
186 | 183 |
187 <tr> | 184 <tr> |
188 <td>Declared Type Accessor</td> | 185 <td>Declared Type Accessor</td> |
189 <td><code>decltype(<i>expression</i>)</code></td> | 186 <td><code>decltype(<i>expression</i>)</code></td> |
190 <td>Provides a means to determine the type of an expression at compile-time, | 187 <td>Provides a means to determine the type of an expression at compile-time, |
191 useful most often in templates.</td> | 188 useful most often in templates.</td> |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 <td>Allows conversion operators that cannot be implicitly invoked</td> | 251 <td>Allows conversion operators that cannot be implicitly invoked</td> |
255 <td><a href="http://en.cppreference.com/w/cpp/language/explicit"> | 252 <td><a href="http://en.cppreference.com/w/cpp/language/explicit"> |
256 explicit specifier</a></td> | 253 explicit specifier</a></td> |
257 <td></td> | 254 <td></td> |
258 </tr> | 255 </tr> |
259 | 256 |
260 <tr> | 257 <tr> |
261 <td>Final Declarations</td> | 258 <td>Final Declarations</td> |
262 <td><code>final</code></td> | 259 <td><code>final</code></td> |
263 <td>Indicates that a class or function is final and cannot be overridden</td> | 260 <td>Indicates that a class or function is final and cannot be overridden</td> |
264 <td><a href="http://go/totw:54"> | 261 <td>TODO: documentation link</td> |
265 Tip of the Week #54: Controlling Your Inheritance</a></td> | |
266 <td><code>FINAL</code> is already widely used in the codebase.</td> | 262 <td><code>FINAL</code> is already widely used in the codebase.</td> |
267 </tr> | 263 </tr> |
268 | 264 |
269 <tr> | 265 <tr> |
270 <td>Function Local Variable</td> | 266 <td>Function Local Variable</td> |
271 <td><code>__func__</code></td> | 267 <td><code>__func__</code></td> |
272 <td>Provides a local variable of the name of the enclosing | 268 <td>Provides a local variable of the name of the enclosing |
273 function for logging purposes</td> | 269 function for logging purposes</td> |
274 <td><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=
338"> | 270 <td><a href="http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=
338"> |
275 The __func__ Predeclared Identifier is Coming to C++</a></td> | 271 The __func__ Predeclared Identifier is Coming to C++</a></td> |
276 <td></td> | 272 <td></td> |
277 </tr> | 273 </tr> |
278 | 274 |
279 <tr> | 275 <tr> |
280 <td>Function Suppression</td> | 276 <td>Function Suppression</td> |
281 <td><code><i>Function</i>(<i>arguments</i>) = delete;</code></td> | 277 <td><code><i>Function</i>(<i>arguments</i>) = delete;</code></td> |
282 <td>Suppresses the implementation of a function, especially a | 278 <td>Suppresses the implementation of a function, especially a |
283 synthetic function such as a copy constructor</td> | 279 synthetic function such as a copy constructor</td> |
284 <td>TODO: documentation link</td> | 280 <td>TODO: documentation link</td> |
285 <td></td> | 281 <td></td> |
286 </tr> | 282 </tr> |
287 | 283 |
288 <tr> | 284 <tr> |
289 <td>(Uniform) Initialization Syntax</td> | 285 <td>(Uniform) Initialization Syntax</td> |
290 <td><code><i>type</i> <i>name</i> { [<i>value</i> ..., <i>value</i>]};</code></t
d> | 286 <td><code><i>type</i> <i>name</i> { [<i>value</i> ..., <i>value</i>]};</code></t
d> |
291 <td>Allows any object of primitive, aggregate or class | 287 <td>Allows any object of primitive, aggregate or class |
292 type to be initialized using brace syntax</td> | 288 type to be initialized using brace syntax</td> |
293 <td><a href="http://go/totw:58"> | 289 <td>TODO: documentation link</td> |
294 Tip of the Week #58: Initializer Lists and the Uniform Initialization Syntax</a>
</td> | |
295 <td></td> | 290 <td></td> |
296 </tr> | 291 </tr> |
297 | 292 |
298 <tr> | 293 <tr> |
299 <td>Inline Namespaces</td> | 294 <td>Inline Namespaces</td> |
300 <td><code>inline</code></td> | 295 <td><code>inline</code></td> |
301 <td>Allows better versioning of namespaces</td> | 296 <td>Allows better versioning of namespaces</td> |
302 <td><a href="http://en.cppreference.com/w/cpp/language/namespace">Namespaces</a>
</td> | 297 <td><a href="http://en.cppreference.com/w/cpp/language/namespace">Namespaces</a>
</td> |
303 <td>Under investigation, unclear how it will work with | 298 <td>Under investigation, unclear how it will work with |
304 components</td> | 299 components</td> |
(...skipping 18 matching lines...) Expand all Loading... |
323 | 318 |
324 <tr> | 319 <tr> |
325 <td>Non-Static Class Member Initializers</td> | 320 <td>Non-Static Class Member Initializers</td> |
326 <td> | 321 <td> |
327 <code> | 322 <code> |
328 class C {<br /> | 323 class C {<br /> |
329 <i>type</i> <i>var</i> = <i>value</i>;<br/> | 324 <i>type</i> <i>var</i> = <i>value</i>;<br/> |
330 C() // copy-initializes <i>var</i><br/> | 325 C() // copy-initializes <i>var</i><br/> |
331 </code> | 326 </code> |
332 <td>Allows non-static class members to be initialized at their definitions (outs
ide constructors)</td> | 327 <td>Allows non-static class members to be initialized at their definitions (outs
ide constructors)</td> |
333 <td><a href="http://go/totw:61"> | 328 <td><a href="http://en.cppreference.com/w/cpp/language/data_members"> |
334 Tip of the Week #58: Non-Static Class Member Initializers</a> and | |
335 <a href="http://en.cppreference.com/w/cpp/language/data_members"> | |
336 Non-static data members</a></td> | 329 Non-static data members</a></td> |
337 <td></td> | 330 <td></td> |
338 </tr> | 331 </tr> |
339 | 332 |
340 <tr> | 333 <tr> |
341 <td>Null Pointer Constant</td> | 334 <td>Null Pointer Constant</td> |
342 <td><code>nullptr</code></td> | 335 <td><code>nullptr</code></td> |
343 <td>Declares a type-safe null pointer</td> | 336 <td>Declares a type-safe null pointer</td> |
344 <td><a href="http://go/totw:39"> | 337 <td>TODO: documentation link</td> |
345 Tip of the Week #39: Prefer C++11’s nullptr to NULL or 0</a></td> | |
346 <td><a href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#0_
and_nullptr/NULL">Google Style Guidwe</a>. | 338 <td><a href="https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#0_
and_nullptr/NULL">Google Style Guidwe</a>. |
347 </td> | 339 </td> |
348 </tr> | 340 </tr> |
349 | 341 |
350 <tr> | 342 <tr> |
351 <td>Overrides</td> | 343 <td>Overrides</td> |
352 <td><code>override</code></td> | 344 <td><code>override</code></td> |
353 <td>Indicates that a class or function overrides a base implementation</td> | 345 <td>Indicates that a class or function overrides a base implementation</td> |
354 <td><a href="http://go/totw:54"> | 346 <td>TODO: documentation link</td> |
355 Tip of the Week #54: Controlling Your Inheritance</a></td> | |
356 <td><code>OVERRIDE</code> is already widely used in the codebase.</td> | 347 <td><code>OVERRIDE</code> is already widely used in the codebase.</td> |
357 </tr> | 348 </tr> |
358 | 349 |
359 <tr> | 350 <tr> |
360 <td>Range-Based For Loops</td> | 351 <td>Range-Based For Loops</td> |
361 <td><code>for (<i>type</i> <i>var</i> : <i>range</i>)</code></td> | 352 <td><code>for (<i>type</i> <i>var</i> : <i>range</i>)</code></td> |
362 <td>Facilitates a more concise syntax for iterating over the elements | 353 <td>Facilitates a more concise syntax for iterating over the elements |
363 of a container (or a range of iterators) in a <code>for</code> loop</td> | 354 of a container (or a range of iterators) in a <code>for</code> loop</td> |
364 <td>TODO: documentation link</td> | 355 <td>TODO: documentation link</td> |
365 <td></td> | 356 <td></td> |
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 <td><a href="http://en.cppreference.com/w/cpp/iterator/next">std::next</a> | 688 <td><a href="http://en.cppreference.com/w/cpp/iterator/next">std::next</a> |
698 and <a href="http://en.cppreference.com/w/cpp/iterator/prev">std::prev</a> | 689 and <a href="http://en.cppreference.com/w/cpp/iterator/prev">std::prev</a> |
699 </td> | 690 </td> |
700 <td></td> | 691 <td></td> |
701 </tr> | 692 </tr> |
702 | 693 |
703 <tr> | 694 <tr> |
704 <td>Initializer Lists</td> | 695 <td>Initializer Lists</td> |
705 <td><code>std::initializer_list<T></code></td> | 696 <td><code>std::initializer_list<T></code></td> |
706 <td>Allows containers to be initialized with aggregate elements</td> | 697 <td>Allows containers to be initialized with aggregate elements</td> |
707 <td><a href="http://go/totw:58"> | 698 <td>TODO: documentation link</td> |
708 Tip of the Week #58: Initializer Lists and the Uniform Initialization Syntax</a>
</td> | |
709 <td></td> | 699 <td></td> |
710 </tr> | 700 </tr> |
711 | 701 |
712 <tr> | 702 <tr> |
713 <td>Move Semantics</td> | 703 <td>Move Semantics</td> |
714 <td><code>std::move()</code></td> | 704 <td><code>std::move()</code></td> |
715 <td>Facilitates efficient move operations</td> | 705 <td>Facilitates efficient move operations</td> |
716 <td><a href="http://en.cppreference.com/w/cpp/utility/move"> | 706 <td><a href="http://en.cppreference.com/w/cpp/utility/move"> |
717 <code>std::move</code> reference</a></td> | 707 <code>std::move</code> reference</a></td> |
718 <td></td> | 708 <td></td> |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 std::stoul, std::stoull</a>, and | 800 std::stoul, std::stoull</a>, and |
811 <a href="http://en.cppreference.com/w/cpp/string/basic_string/stof"> | 801 <a href="http://en.cppreference.com/w/cpp/string/basic_string/stof"> |
812 std::stof, std::stod, std::stold</a> </td> | 802 std::stof, std::stod, std::stold</a> </td> |
813 <td></td> | 803 <td></td> |
814 </tr> | 804 </tr> |
815 | 805 |
816 <tr> | 806 <tr> |
817 <td>STL Algorithms</td> | 807 <td>STL Algorithms</td> |
818 <td>Functions within <code><algorithm></code>.</td> | 808 <td>Functions within <code><algorithm></code>.</td> |
819 <td>Enhancements to the set of STL algorithms</td> | 809 <td>Enhancements to the set of STL algorithms</td> |
820 <td><a href="http://go/totw:21"> | 810 <td>See the <a href="http://en.cppreference.com/w/cpp/algorithm"> |
821 Tip of the Week #21: New C++11 STL Algorithms</a>. See | |
822 the <a href="http://en.cppreference.com/w/cpp/algorithm"> | |
823 Algorithms library</a> for a complete list.</td> | 811 Algorithms library</a> for a complete list.</td> |
824 <td></td> | 812 <td></td> |
825 </tr> | 813 </tr> |
826 | 814 |
827 <tr> | 815 <tr> |
828 <td>System Errors</td> | 816 <td>System Errors</td> |
829 <td><code><system_error></code></td> | 817 <td><code><system_error></code></td> |
830 <td>Provides a standard system error library</td> | 818 <td>Provides a standard system error library</td> |
831 <td><a href="http://en.cppreference.com/w/cpp/error/system_error">std::system_er
ror</a></td> | 819 <td><a href="http://en.cppreference.com/w/cpp/error/system_error">std::system_er
ror</a></td> |
832 <td></td> | 820 <td></td> |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
954 </tr> | 942 </tr> |
955 | 943 |
956 </tbody> | 944 </tbody> |
957 </table> | 945 </table> |
958 | 946 |
959 </details> | 947 </details> |
960 | 948 |
961 </div> | 949 </div> |
962 </body> | 950 </body> |
963 </html> | 951 </html> |
OLD | NEW |