aboutsummaryrefslogtreecommitdiffhomepage
path: root/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-08-08 10:38:18 +0900
committernsfisis <nsfisis@gmail.com>2026-08-08 10:38:18 +0900
commit4681e861efcdf9b0b73e3803e70712bc55162863 (patch)
treed910ef14d9549df19896d85a42e12a32db787fb6 /services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html
parenteca423774047122f7dfc4be9ac78626e32d733d3 (diff)
downloadnsfisis.dev-4681e861efcdf9b0b73e3803e70712bc55162863.tar.gz
nsfisis.dev-4681e861efcdf9b0b73e3803e70712bc55162863.tar.zst
nsfisis.dev-4681e861efcdf9b0b73e3803e70712bc55162863.zip
feat(slides): improve slide controllerHEADmain
Diffstat (limited to 'services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html')
-rw-r--r--services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html60
1 files changed, 32 insertions, 28 deletions
diff --git a/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html b/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html
index db3f0334..ea909c94 100644
--- a/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html
+++ b/services/nuldoc/public/blog/posts/2021-10-02/cpp-you-can-use-keywords-in-attributes/index.html
@@ -15,7 +15,7 @@
<meta name="Hatena::Bookmark" content="nocomment">
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<title>【C++】 属性構文の属性名にはキーワードが使える|REPL: Rest-Eat-Program Loop</title>
- <link rel="stylesheet" href="/style.css?h=bf289421c09405fa3c89dc8b18742368">
+ <link rel="stylesheet" href="/style.css?h=61618c116e07057fc873f7751f158cd7">
</head>
<body class="single">
<header class="header">
@@ -72,41 +72,44 @@
タイトル落ち。まずはこのコードを見て欲しい。
</p>
<div class="codeblock">
- <pre class="highlight" style="background-color:#f5f5f5"><code><div class="codeblock-line"><span style="color: #6e7781">#include</span> <span style="color: #6e7781">&lt;iostream&gt;</span>
-</div><div class="codeblock-line">
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">alignas</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">alignof</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">and</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">and_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">asm</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">auto</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">bitand</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">bitor</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">bool</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">break</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">case</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">catch</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char16_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char32_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">class</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">compl</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">const</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">const_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">constexpr</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">continue</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">decltype</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">default</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">delete</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">do</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">double</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">dynamic_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">else</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">enum</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">explicit</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">export</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">extern</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">false</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">final</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">float</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">for</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">friend</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">goto</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">if</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">inline</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">int</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">long</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">mutable</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">namespace</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">new</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">noexcept</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">not</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">not_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">nullptr</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">operator</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">or</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">or_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">override</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">private</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">protected</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">public</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">register</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">reinterpret_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">return</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">short</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">signed</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">sizeof</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static_assert</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">struct</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">switch</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">template</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">this</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">thread_local</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">throw</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">true</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">try</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typedef</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typeid</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typename</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">union</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">unsigned</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">virtual</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">void</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">volatile</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">wchar_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">while</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">xor</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">xor_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
-</div><div class="codeblock-line"><span style="color: #6e7781">// [[using]]</span>
-</div><div class="codeblock-line"><span style="color: #cf222e">int</span> <span style="color: #24292f;background-color: #f6f8fa">main</span><span style="color: #24292f;background-color: #f6f8fa">()</span> <span style="color: #24292f;background-color: #f6f8fa">{</span>
-</div><div class="codeblock-line"> <span style="color: #24292f;background-color: #f6f8fa">std</span><span style="color: #0550ae">::</span><span style="color: #24292f;background-color: #f6f8fa">cout</span> <span style="color: #0550ae">&lt;&lt;</span> <span style="color: #0a3069">"Hello, World!"</span> <span style="color: #0550ae">&lt;&lt;</span> <span style="color: #24292f;background-color: #f6f8fa">std</span><span style="color: #0550ae">::</span><span style="color: #24292f;background-color: #f6f8fa">endl</span><span style="color: #24292f;background-color: #f6f8fa">;</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">}</span></div></code></pre>
+ <pre class="highlight" style="background-color:#f5f5f5"><code><span class="codeblock-line"><span style="color: #6e7781">#include</span> <span style="color: #6e7781">&lt;iostream&gt;</span>
+</span><span class="codeblock-line">
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">alignas</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">alignof</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">and</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">and_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">asm</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">auto</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">bitand</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">bitor</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">bool</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">break</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">case</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">catch</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char16_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">char32_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">class</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">compl</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">const</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">const_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">constexpr</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">continue</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">decltype</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">default</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">delete</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">do</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">double</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">dynamic_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">else</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">enum</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">explicit</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">export</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">extern</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">false</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">final</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">float</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">for</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">friend</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">goto</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">if</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">inline</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">int</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">long</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">mutable</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">namespace</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">new</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">noexcept</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">not</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">not_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">nullptr</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">operator</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">or</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">or_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">override</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">private</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">protected</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">public</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">register</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">reinterpret_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">return</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">short</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">signed</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">sizeof</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static_assert</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">static_cast</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">struct</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">switch</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">template</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">this</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">thread_local</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">throw</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #953800">true</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">try</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typedef</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typeid</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">typename</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">union</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">unsigned</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">virtual</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">void</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">volatile</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">wchar_t</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">while</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">xor</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #24292f;background-color: #f6f8fa">xor_eq</span><span style="color: #24292f;background-color: #f6f8fa">]]</span>
+</span><span class="codeblock-line"><span style="color: #6e7781">// [[using]]</span>
+</span><span class="codeblock-line"><span style="color: #cf222e">int</span> <span style="color: #24292f;background-color: #f6f8fa">main</span><span style="color: #24292f;background-color: #f6f8fa">()</span> <span style="color: #24292f;background-color: #f6f8fa">{</span>
+</span><span class="codeblock-line"> <span style="color: #24292f;background-color: #f6f8fa">std</span><span style="color: #0550ae">::</span><span style="color: #24292f;background-color: #f6f8fa">cout</span> <span style="color: #0550ae">&lt;&lt;</span> <span style="color: #0a3069">"Hello, World!"</span> <span style="color: #0550ae">&lt;&lt;</span> <span style="color: #24292f;background-color: #f6f8fa">std</span><span style="color: #0550ae">::</span><span style="color: #24292f;background-color: #f6f8fa">endl</span><span style="color: #24292f;background-color: #f6f8fa">;</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">}</span>
+</span></code></pre>
</div>
<p>
コンパイラのバージョン
</p>
<div class="codeblock">
- <pre class="highlight" style="background-color:#f5f5f5"><code><div class="codeblock-line">$ clang++ --version
-</div><div class="codeblock-line">Apple clang version 11.0.0 (clang-1100.0.33.8)
-</div><div class="codeblock-line">Target: x86_64-apple-darwin19.6.0
-</div><div class="codeblock-line">Thread model: posix
-</div><div class="codeblock-line">InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin</div></code></pre>
+ <pre class="highlight" style="background-color:#f5f5f5"><code><span class="codeblock-line">$ clang++ --version
+</span><span class="codeblock-line">Apple clang version 11.0.0 (clang-1100.0.33.8)
+</span><span class="codeblock-line">Target: x86_64-apple-darwin19.6.0
+</span><span class="codeblock-line">Thread model: posix
+</span><span class="codeblock-line">InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
+</span></code></pre>
</div>
<p>
コンパイルコマンド (C++17 指定)
</p>
<div class="codeblock">
- <pre class="highlight" style="background-color:#f5f5f5"><code><div class="codeblock-line">$ clang --std=c++17 hoge.cpp</div></code></pre>
+ <pre class="highlight" style="background-color:#f5f5f5"><code><span class="codeblock-line">$ clang --std=c++17 hoge.cpp
+</span></code></pre>
</div>
<p>
この記事から得られるものはこれ以上ないので以下は蛇足になる。
@@ -136,8 +139,9 @@
上のコードでは <code>[[using]]</code> をコメントアウトしているが、これは <code>using</code> キーワードのみ属性構文の中で意味を持つからであり、このコメントアウトを外すとコンパイルに失敗する。
</p>
<div class="codeblock">
- <pre class="highlight" style="background-color:#f5f5f5"><code><div class="codeblock-line"><span style="color: #6e7781">// using の例</span>
-</div><div class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">using</span> <span style="color: #24292f;background-color: #f6f8fa">foo</span><span style="color: #0550ae">:</span> <span style="color: #24292f;background-color: #f6f8fa">attr1</span><span style="color: #24292f;background-color: #f6f8fa">,</span> <span style="color: #24292f;background-color: #f6f8fa">attr2</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #cf222e">int</span> <span style="color: #24292f;background-color: #f6f8fa">x</span><span style="color: #24292f;background-color: #f6f8fa">;</span> <span style="color: #6e7781">// [[foo::attr1, foo::attr2]] の糖衣構文</span></div></code></pre>
+ <pre class="highlight" style="background-color:#f5f5f5"><code><span class="codeblock-line"><span style="color: #6e7781">// using の例</span>
+</span><span class="codeblock-line"><span style="color: #24292f;background-color: #f6f8fa">[[</span><span style="color: #cf222e">using</span> <span style="color: #24292f;background-color: #f6f8fa">foo</span><span style="color: #0550ae">:</span> <span style="color: #24292f;background-color: #f6f8fa">attr1</span><span style="color: #24292f;background-color: #f6f8fa">,</span> <span style="color: #24292f;background-color: #f6f8fa">attr2</span><span style="color: #24292f;background-color: #f6f8fa">]]</span> <span style="color: #cf222e">int</span> <span style="color: #24292f;background-color: #f6f8fa">x</span><span style="color: #24292f;background-color: #f6f8fa">;</span> <span style="color: #6e7781">// [[foo::attr1, foo::attr2]] の糖衣構文</span>
+</span></code></pre>
</div>
<p>
C++17 の仕様も見てみる (正確には標準化前のドラフト)。