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 <title>C++11 use in Chromium</title> | 10 <title>C++11 use in Chromium</title> |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 176 |
177 <tr> | 177 <tr> |
178 <td>Function Suppression</td> | 178 <td>Function Suppression</td> |
179 <td><code><i>Function</i>(<i>arguments</i>) = delete;</code></td> | 179 <td><code><i>Function</i>(<i>arguments</i>) = delete;</code></td> |
180 <td>Suppresses the implementation of a function, especially a synthetic function
such as a copy constructor</td> | 180 <td>Suppresses the implementation of a function, especially a synthetic function
such as a copy constructor</td> |
181 <td><a href="http://en.cppreference.com/w/cpp/language/function#Deleted_function
s">Deleted functions</a></td> | 181 <td><a href="http://en.cppreference.com/w/cpp/language/function#Deleted_function
s">Deleted functions</a></td> |
182 <td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev
/i1o7-RNRnMs">Discussion thread</a></td> | 182 <td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev
/i1o7-RNRnMs">Discussion thread</a></td> |
183 </tr> | 183 </tr> |
184 | 184 |
185 <tr> | 185 <tr> |
| 186 <td>Inherited Constructors</td> |
| 187 <td><code>class Derived : Base {<br /> |
| 188 using Base::Base;<br /> |
| 189 };</code></td> |
| 190 <td>Allows derived classes to inherit constructors from base classes</td> |
| 191 <td><a href="http://en.cppreference.com/w/cpp/language/using_declaration#Inherit
ing_constructors">Inheriting constructors</a></td> |
| 192 <td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev
/BULzgIKZ-Ao">Discussion thread</a></td> |
| 193 </tr> |
| 194 |
| 195 <tr> |
186 <td>Lambda Expressions</td> | 196 <td>Lambda Expressions</td> |
187 <td><code>[<i>captures</i>](<i>params</i>) -> <i>ret</i> { <i>body</i> }</cod
e></td> | 197 <td><code>[<i>captures</i>](<i>params</i>) -> <i>ret</i> { <i>body</i> }</cod
e></td> |
188 <td>Anonymous functions</td> | 198 <td>Anonymous functions</td> |
189 <td><a href="http://en.cppreference.com/w/cpp/language/lambda">Lambda functions<
/a></td> | 199 <td><a href="http://en.cppreference.com/w/cpp/language/lambda">Lambda functions<
/a></td> |
190 <td>Lambdas are typically useful as a parameter to methods or functions that wil
l use them immediately, such as those in <code><algorithm></code>. Be care
ful with default captures (<code>[=]</code>, <code>[&]</code>), and do not b
ind or store any capturing lambdas outside the lifetime of the stack frame they
are defined in; use <code>base::Callback</code> for this instead, as it helps pr
event object lifetime mistakes. (Captureless lambdas can be used with <code>base
::Bind</code> as they do not have the same risks.) <a href="https://google.githu
b.io/styleguide/cppguide.html#Lambda_expressions">Google Style Guide</a>. <a hre
f="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/D9UnnxBnc
iQ">Discussion thread</a>. <a href="https://groups.google.com/a/chromium.org/for
um/#!topic/cxx/QxjsPELDYdQ">Another discussion thread</a> (about captureless lam
bdas and <code>base::Bind</code>).</td> | 200 <td>Lambdas are typically useful as a parameter to methods or functions that wil
l use them immediately, such as those in <code><algorithm></code>. Be care
ful with default captures (<code>[=]</code>, <code>[&]</code>), and do not b
ind or store any capturing lambdas outside the lifetime of the stack frame they
are defined in; use <code>base::Callback</code> for this instead, as it helps pr
event object lifetime mistakes. (Captureless lambdas can be used with <code>base
::Bind</code> as they do not have the same risks.) <a href="https://google.githu
b.io/styleguide/cppguide.html#Lambda_expressions">Google Style Guide</a>. <a hre
f="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/D9UnnxBnc
iQ">Discussion thread</a>. <a href="https://groups.google.com/a/chromium.org/for
um/#!topic/cxx/QxjsPELDYdQ">Another discussion thread</a> (about captureless lam
bdas and <code>base::Bind</code>).</td> |
191 </tr> | 201 </tr> |
192 | 202 |
193 <tr> | 203 <tr> |
194 <td>Local Types as Template Arguments</td> | 204 <td>Local Types as Template Arguments</td> |
195 <td><code>void func() {<br /> | 205 <td><code>void func() {<br /> |
(...skipping 473 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 | 679 |
670 <tr> | 680 <tr> |
671 <td>Attributes</td> | 681 <td>Attributes</td> |
672 <td><code>[[<i>attribute_name</i>]]</code></td> | 682 <td><code>[[<i>attribute_name</i>]]</code></td> |
673 <td>Attaches properties to declarations that specific compiler implementations m
ay use.</td> | 683 <td>Attaches properties to declarations that specific compiler implementations m
ay use.</td> |
674 <td><a href="http://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generaliz
ed-attributes/">C++11 generalized attributes</a></td> | 684 <td><a href="http://www.codesynthesis.com/~boris/blog/2012/04/18/cxx11-generaliz
ed-attributes/">C++11 generalized attributes</a></td> |
675 <td></td> | 685 <td></td> |
676 </tr> | 686 </tr> |
677 | 687 |
678 <tr> | 688 <tr> |
679 <td>Inherited Constructors</td> | |
680 <td><code>class Derived : Base {<br /> | |
681 using Base::Base;<br /> | |
682 };</code></td> | |
683 <td>Allow derived classes to inherit constructors from base classes</td> | |
684 <td><a href="http://en.cppreference.com/w/cpp/language/using_declaration">Using-
declaration</a></td> | |
685 <td>Reevaluate now that MSVS2015 is available. <a href="https://groups.google.co
m/a/chromium.org/forum/#!topic/chromium-dev/BULzgIKZ-Ao">Discussion thread</a></
td> | |
686 </tr> | |
687 | |
688 <tr> | |
689 <td>Raw String Literals</td> | 689 <td>Raw String Literals</td> |
690 <td><code>string <i>var</i>=R"(<i>raw_string</i>)";</code></td> | 690 <td><code>string <i>var</i>=R"(<i>raw_string</i>)";</code></td> |
691 <td>Allows a string to be encoded without any escape sequences, easing parsing i
n regex expressions, for example</td> | 691 <td>Allows a string to be encoded without any escape sequences, easing parsing i
n regex expressions, for example</td> |
692 <td><a href="http://en.cppreference.com/w/cpp/language/string_literal">string li
teral</a></td> | 692 <td><a href="http://en.cppreference.com/w/cpp/language/string_literal">string li
teral</a></td> |
693 <td>Beware of passing these as macro arguments, which can trigger a <a href="htt
ps://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824">lexer bug</a> on older GCC vers
ions. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-d
ev/2kWQHbbuMHI">Discussion thread</a></td> | 693 <td>Beware of passing these as macro arguments, which can trigger a <a href="htt
ps://gcc.gnu.org/bugzilla/show_bug.cgi?id=57824">lexer bug</a> on older GCC vers
ions. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-d
ev/2kWQHbbuMHI">Discussion thread</a></td> |
694 </tr> | 694 </tr> |
695 | 695 |
696 <tr> | 696 <tr> |
697 <td>UTF-8, UTF-16, UTF-32 String Literals</td> | 697 <td>UTF-8, UTF-16, UTF-32 String Literals</td> |
698 <td><code>u8"<i>string</i>", u"<i>string</i>", U"<i>str
ing</i>"</code></td> | 698 <td><code>u8"<i>string</i>", u"<i>string</i>", U"<i>str
ing</i>"</code></td> |
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
928 <td><a href="http://en.cppreference.com/w/cpp/locale/wstring_convert">std::wstri
ng_convert</a>, <a href="http://en.cppreference.com/w/cpp/locale/wbuffer_convert
">std::wbuffer_convert</a>, <a href="http://en.cppreference.com/w/cpp/locale/cod
ecvt_utf8">std::codecvt_utf8</a>, <a href="http://en.cppreference.com/w/cpp/loca
le/codecvt_utf16">std::codecvt_utf16</a>, <a href="http://en.cppreference.com/w/
cpp/locale/codecvt_utf8_utf16">std::codecvt_utf8_utf16</a></td> | 928 <td><a href="http://en.cppreference.com/w/cpp/locale/wstring_convert">std::wstri
ng_convert</a>, <a href="http://en.cppreference.com/w/cpp/locale/wbuffer_convert
">std::wbuffer_convert</a>, <a href="http://en.cppreference.com/w/cpp/locale/cod
ecvt_utf8">std::codecvt_utf8</a>, <a href="http://en.cppreference.com/w/cpp/loca
le/codecvt_utf16">std::codecvt_utf16</a>, <a href="http://en.cppreference.com/w/
cpp/locale/codecvt_utf8_utf16">std::codecvt_utf8_utf16</a></td> |
929 <td>Non-UTF-8 text is banned by the <a href="https://google.github.io/styleguide
/cppguide.html#Non-ASCII_Characters">Google Style Guide</a>. However, may be use
ful for consuming non-ASCII data.</td> | 929 <td>Non-UTF-8 text is banned by the <a href="https://google.github.io/styleguide
/cppguide.html#Non-ASCII_Characters">Google Style Guide</a>. However, may be use
ful for consuming non-ASCII data.</td> |
930 </tr> | 930 </tr> |
931 | 931 |
932 </tbody> | 932 </tbody> |
933 </table> | 933 </table> |
934 | 934 |
935 </div> | 935 </div> |
936 </body> | 936 </body> |
937 </html> | 937 </html> |
OLD | NEW |