Index: styleguide/c++/c++11.html |
diff --git a/styleguide/c++/c++11.html b/styleguide/c++/c++11.html |
index 1cbe001bd0179e04b0a4d008d79ac83bb3e071fa..b62f3c05feaf383378d651f2cabf942ebbaa3c66 100644 |
--- a/styleguide/c++/c++11.html |
+++ b/styleguide/c++/c++11.html |
@@ -84,6 +84,16 @@ Style Guide on <code>auto</code></a>. <a href="https://groups.google.com/a/chrom |
</tr> |
<tr> |
+<td>Declared Type Accessor</td> |
+<td><code>decltype(<i>expression</i>)</code></td> |
+<td>Provides a means to determine the type of an expression at compile-time, |
+useful most often in templates.</td> |
+<td><a href="http://en.cppreference.com/w/cpp/language/decltype"> |
+decltype specifier</a></td> |
+<td>Usage should be rare. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/_zoNvZd_dSo">Discussion thread</a></td> |
+</tr> |
+ |
+<tr> |
<td>Enumerated Type Classes</td> |
<td><code>enum class <i>classname</i></code></td> |
<td>Provide enums as full classes, with no implicit |
@@ -231,6 +241,24 @@ The __func__ Predeclared Identifier is Coming to C++</a></td> |
</tr> |
<tr> |
+<td><code>long long</code> Type</td> |
+<td><code>long long <i>var</i>= <i>value</i>;</code></td> |
+<td>An integer of at least 64 bits</td> |
+<td><a href="http://en.cppreference.com/w/cpp/language/types"> |
+Fundamental types</a></td> |
+<td>Use an stdint.h type if you need a 64bit number. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/RxugZ-pIDxk">Discussion thread</a></td> |
+</tr> |
+ |
+<tr> |
+<td>Raw String Literals</td> |
+<td><code>string <i>var</i>=R"(<i>raw_string</i>)";</code></td> |
+<td>Allows a string to be encoded without any escape |
+sequences, easing parsing in regex expressions, for example</td> |
+<td>TODO: documentation link</td> |
+<td>Causes incorrect line numbers in MSVS2014 and gcc. Reevaluate once that works. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/2kWQHbbuMHI">Discussion thread</a></td> |
+</tr> |
+ |
+<tr> |
<td>Rvalue References (and Move Semantics)</td> |
<td><code>T(T&& t)</code> and <code>T& operator=(T&& t)</code></td> |
<td>Reference that only binds to a temporary object</td> |
@@ -239,6 +267,15 @@ The __func__ Predeclared Identifier is Coming to C++</a></td> |
</tr> |
<tr> |
+<td>(Uniform) Initialization Syntax</td> |
+<td><code><i>type</i> <i>name</i> { [<i>value</i> ..., <i>value</i>]};</code></td> |
+<td>Allows any object of primitive, aggregate or class |
+type to be initialized using brace syntax</td> |
+<td>TODO: documentation link</td> |
+<td>Dangerous without library support, see thread. Reevaulate once we have C++11 library support. <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/GF96FshwHLw">Discussion thread</a></td> |
+</tr> |
+ |
+<tr> |
<td>UTF-16 and UTF-32 Support (16-Bit and 32-Bit Character Types)</td> |
<td><code>char16_t</code> and <code>char32_t</code></td> |
<td>Provides character types for handling 16-bit |
@@ -306,16 +343,6 @@ C++11 generalized attributes</a></td> |
</tr> |
<tr> |
-<td>Declared Type Accessor</td> |
-<td><code>decltype(<i>expression</i>)</code></td> |
-<td>Provides a means to determine the type of an expression at compile-time, |
-useful most often in templates.</td> |
-<td><a href="http://en.cppreference.com/w/cpp/language/decltype"> |
-decltype specifier</a></td> |
-<td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/_zoNvZd_dSo">Discussion thread</a></td> |
-</tr> |
- |
-<tr> |
<td>Default Function Creation</td> |
<td><code><i>Function</i>(<i>arguments</i>) = default;</code></td> |
<td>Instructs the compiler to generate a default version |
@@ -367,15 +394,6 @@ synthetic function such as a copy constructor</td> |
</tr> |
<tr> |
-<td>(Uniform) Initialization Syntax</td> |
-<td><code><i>type</i> <i>name</i> { [<i>value</i> ..., <i>value</i>]};</code></td> |
-<td>Allows any object of primitive, aggregate or class |
-type to be initialized using brace syntax</td> |
-<td>TODO: documentation link</td> |
-<td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/GF96FshwHLw">Discussion thread</a></td> |
-</tr> |
- |
-<tr> |
<td>Inline Namespaces</td> |
<td><code>inline</code></td> |
<td>Allows better versioning of namespaces</td> |
@@ -392,15 +410,6 @@ type to be initialized using brace syntax</td> |
</tr> |
<tr> |
-<td><code>long long</code> Type</td> |
-<td><code>long long <i>var</i>= <i>value</i>;</code></td> |
-<td>An integer of at least 64 bits</td> |
-<td><a href="http://en.cppreference.com/w/cpp/language/types"> |
-Fundamental types</a></td> |
-<td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/RxugZ-pIDxk">Discussion thread</a></td> |
-</tr> |
- |
-<tr> |
<td>Non-Static Class Member Initializers</td> |
<td> |
<code> |
@@ -415,15 +424,6 @@ Non-static data members</a></td> |
</tr> |
<tr> |
-<td>Raw String Literals</td> |
-<td><code>string <i>var</i>=R"(<i>raw_string</i>)";</code></td> |
-<td>Allows a string to be encoded without any escape |
-sequences, easing parsing in regex expressions, for example</td> |
-<td>TODO: documentation link</td> |
-<td><a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/2kWQHbbuMHI">Discussion thread</a></td> |
-</tr> |
- |
-<tr> |
<td>Union Class Members</td> |
<td><code>union <i>name</i> { <i>class</i> <i>var</i>}</code></td> |
<td>Allows class type members</td> |