File indexing completed on 2024-05-12 04:02:06

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>highlight.cpp</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (C++) - Theme (Breeze Dark)"/>
0006 </head><body style="background-color:#232629;color:#cfcfc2"><pre>
0007 <span style="color:#27ae60">#pragma once</span>
0008 
0009 <span style="color:#27ae60">#include </span><span style="color:#27ae60">&lt;cassert></span>
0010 <span style="color:#27ae60">#include </span><span style="color:#27ae60">&lt;assert.h></span>
0011 <span style="color:#27ae60">#include </span><span style="color:#27ae60">"assert.h"</span>
0012 <span style="color:#27ae60">#include </span><span style="color:#27ae60">"assert.hpp"</span><span style="color:#27ae60"> </span><span style="color:#7a7c7d">// abc</span>
0013 <span style="color:#27ae60">#include </span><span style="color:#27ae60">"path/assert.hpp"</span>
0014 <span style="color:#27ae60">#include </span><span style="color:#27ae60">"assert.h"</span><span style="color:#da4453;text-decoration:underline">a</span>
0015 <span style="color:#27ae60">#include </span><span style="color:#27ae60">"assert.h"</span><span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">a</span>
0016 <span style="color:#27ae60">#include </span><span style="color:#27ae60">&lt;cassert></span><span style="color:#da4453;text-decoration:underline">a</span>
0017 <span style="color:#27ae60">#include </span><span style="color:#27ae60">&lt;cassert></span><span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">a</span>
0018 <span style="color:#27ae60">#include FOO() error</span>
0019 <span style="color:#27ae60">#include_next </span><span style="color:#27ae60">&lt;cassert></span><span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">a</span>
0020 <span style="color:#27ae60">#include_next </span><span style="color:#27ae60">&lt;cassert></span><span style="color:#27ae60"> </span><span style="color:#7a7c7d">/* a</span>
0021 <span style="color:#7a7c7d"> */</span><span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">b</span>
0022 <span style="color:#27ae60">#include PATH_IN_MACRO</span>
0023 <span style="color:#27ae60">#include PATH_IN_MACRO()</span>
0024 <span style="color:#27ae60">#include PATH_IN_MACRO(a, b)</span>
0025 
0026 <span style="color:#27ae60">#define SOME_VAR </span><span style="color:#f67400">1</span>
0027 <span style="color:#27ae60">#ifdef SOME_VAR</span>
0028 
0029 <span style="color:#27ae60">#define MULTILINE_MACRO one </span><span style="color:#3f8058">\</span>
0030 <span style="color:#27ae60">two </span><span style="color:#3f8058">\</span>
0031 <span style="color:#27ae60">three</span>
0032 
0033 <span style="color:#27ae60"># define MULTILINE_MACRO_TEXT                        </span><span style="color:#3f8058">\</span>
0034 <span style="color:#27ae60">    </span><span style="color:#7a7c7d">/* </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d"> The contents of macro is too green :D */</span><span style="color:#27ae60"> </span><span style="color:#3f8058">\</span>
0035 <span style="color:#27ae60">    </span><span style="color:#2980b9">char</span><span style="color:#27ae60"> </span><span style="color:#2980b9">const</span><span style="color:#27ae60"> s</span><span style="color:#3f8058">[]</span><span style="color:#27ae60"> </span><span style="color:#3f8058">=</span><span style="color:#27ae60"> </span><span style="color:#f44f4f">"a</span><span style="color:#3daee9">\\</span><span style="color:#f44f4f">b"</span><span style="color:#27ae60">                          </span><span style="color:#3f8058">\</span>
0036 <span style="color:#27ae60">    </span><span style="color:#f44f4f">"c</span><span style="color:#3daee9">\n</span><span style="color:#f44f4f">d"</span><span style="color:#27ae60">                                           </span><span style="color:#3f8058">\</span>
0037 <span style="color:#27ae60">    </span><span style="color:#7f8c8d">std::uint</span><span style="color:#3f8058">##</span><span style="color:#7f8c8d">x</span><span style="color:#3f8058">##</span><span style="color:#7f8c8d">_t</span><span style="color:#27ae60">                                 </span><span style="color:#3f8058">\</span>
0038 <span style="color:#27ae60">    </span><span style="color:#7f8c8d">std::vector</span><span style="color:#7a7c7d">/**/</span><span style="color:#3f8058">&lt;</span><span style="color:#27ae60">T</span><span style="color:#3f8058">></span><span style="color:#27ae60">                               </span><span style="color:#3f8058">\</span>
0039 <span style="color:#27ae60">    </span><span style="color:#7f8c8d">std::chrono::</span><span style="color:#7a7c7d">/*milli*/</span><span style="color:#7f8c8d">seconds</span>
0040 
0041 
0042 <span style="color:#27ae60"># define VARIADIC</span><span style="color:#3f8058">(</span><span style="color:#27ae60">a</span><span style="color:#3f8058">,</span><span style="color:#27ae60"> </span><span style="color:#3f8058">...)</span><span style="color:#27ae60">          </span><span style="color:#3f8058">\</span>
0043 <span style="color:#27ae60">    f</span><span style="color:#3f8058">(</span><span style="color:#27ae60">a</span><span style="color:#3f8058">##</span><span style="color:#27ae60">a</span><span style="color:#3f8058">)</span><span style="color:#27ae60">                        </span><span style="color:#3f8058">\</span>
0044 <span style="color:#27ae60">    f</span><span style="color:#3f8058">(</span><span style="color:#27ae60">__VA_ARGS__</span><span style="color:#3f8058">)</span><span style="color:#27ae60">                 </span><span style="color:#3f8058">\</span>
0045 <span style="color:#27ae60">    f</span><span style="color:#3f8058">(#</span><span style="color:#27ae60">__VA_ARGS__</span><span style="color:#3f8058">)</span><span style="color:#27ae60">                </span><span style="color:#3f8058">\</span>
0046 <span style="color:#27ae60">    f</span><span style="color:#3f8058">(</span><span style="color:#27ae60">__VA_ARGS__</span><span style="color:#3f8058">)</span><span style="color:#27ae60">                 </span><span style="color:#3f8058">\</span>
0047 <span style="color:#27ae60">    f</span><span style="color:#3f8058">(</span><span style="color:#f67400">0</span><span style="color:#27ae60"> </span><span style="color:#27ae60">__VA_OPT__</span><span style="color:#3f8058">(</span><span style="color:#3f8058">,</span><span style="color:#3f8058">)</span><span style="color:#27ae60"> </span><span style="color:#27ae60">__VA_ARGS__</span><span style="color:#3f8058">)</span><span style="color:#27ae60"> </span><span style="color:#3f8058">\</span>
0048 <span style="color:#27ae60">    x </span><span style="color:#27ae60">__VA_OPT__</span><span style="color:#3f8058">(=</span><span style="color:#27ae60"> </span><span style="color:#3f8058">{</span><span style="color:#27ae60"> </span><span style="color:#27ae60">__VA_ARGS__</span><span style="color:#27ae60"> </span><span style="color:#3f8058">})</span>
0049 
0050 <span style="color:#27ae60"># define MACRO</span><span style="color:#3f8058">()</span><span style="color:#27ae60"> </span>BAD<span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">\</span><span style="color:#27ae60"> </span>ESCAPED
0051 
0052 <span style="color:#27ae60"># error dds</span>
0053 <span style="color:#27ae60"># warning dds</span>
0054 <span style="color:#27ae60"># line 2 "file.cpp"</span>
0055 <span style="color:#27ae60"># define A</span><span style="color:#3f8058">(</span><span style="color:#27ae60">x</span><span style="color:#3f8058">,</span><span style="color:#27ae60"> y</span><span style="color:#3f8058">)</span><span style="color:#27ae60"> x</span><span style="color:#3f8058">##</span><span style="color:#27ae60">y x</span><span style="color:#3f8058">#</span><span style="color:#27ae60">y</span>
0056 <span style="color:#7a7c7d">// OK(L, a) -> L"a"</span>
0057 <span style="color:#27ae60"># define OK</span><span style="color:#3f8058">(</span><span style="color:#27ae60">x</span><span style="color:#3f8058">,</span><span style="color:#27ae60"> y</span><span style="color:#3f8058">)</span><span style="color:#27ae60"> x</span><span style="color:#3f8058">###</span><span style="color:#27ae60">y</span>
0058 <span style="color:#27ae60"># define BAD</span><span style="color:#3f8058">(</span><span style="color:#27ae60">x</span><span style="color:#3f8058">,</span><span style="color:#27ae60"> y</span><span style="color:#3f8058">)</span><span style="color:#27ae60"> x</span><span style="color:#3f8058">####</span><span style="color:#27ae60">y</span>
0059 <span style="color:#27ae60"># define A </span><span style="color:#7a7c7d">/* multi line</span>
0060 <span style="color:#7a7c7d">with comment */</span><span style="color:#27ae60"> expr</span>
0061 <span style="color:#27ae60"># define A </span><span style="color:#7a7c7d">/* multi line</span>
0062 <span style="color:#7a7c7d">with comment */</span>
0063 <span style="color:#f67400">23</span>
0064 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">// x</span>
0065 <span style="color:#27ae60">#42 </span><span style="color:#7a7c7d">// gcc extension = #line 42</span>
0066 
0067 <span style="color:#7a7c7d">// error</span>
0068 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">wrong</span>
0069 <span style="color:#27ae60"># </span><span style="color:#da4453;text-decoration:underline">wrong</span>
0070 <span style="color:#27ae60">#endif </span><span style="color:#da4453;text-decoration:underline">x</span>
0071 <span style="color:#27ae60">#if DS()</span>
0072 <span style="color:#27ae60">#else </span><span style="color:#da4453;text-decoration:underline">x</span>
0073 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">/* */</span><span style="color:#da4453;text-decoration:underline">x</span>
0074 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">/* x</span>
0075 <span style="color:#7a7c7d">y */</span><span style="color:#27ae60"> </span><span style="color:#da4453;text-decoration:underline">z</span>
0076 <span style="color:#27ae60">#endif</span>
0077 
0078 <span style="color:#7a7c7d">// check that _XXX defines work, bug 397766</span>
0079 <span style="color:#27ae60">#ifndef _HEADER_GUARD</span>
0080 <span style="color:#27ae60">#define _HEADER_GUARD </span><span style="color:#f67400">1</span>
0081 <span style="color:#27ae60">#endif</span>
0082 <span style="color:#27ae60">#ifdef _HEADER_GUARD</span>
0083 <span style="color:#27ae60">#if (_HEADER_GUARD >= 1)</span>
0084 <span style="color:#27ae60">#endif</span>
0085 <span style="color:#27ae60">#endif</span>
0086 
0087 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> <span style="color:#27aeae">g_global</span><span style="color:#3f8058">;</span>
0088 
0089 <span style="font-weight:bold">template</span><span style="color:#3f8058">&lt;</span><span style="font-weight:bold">class</span> T<span style="color:#3f8058">,</span> <span style="font-weight:bold">typename</span> U<span style="color:#3f8058">,</span> <span style="font-weight:bold">template</span><span style="color:#3f8058">&lt;</span><span style="font-weight:bold">class</span><span style="color:#3f8058">></span> <span style="font-weight:bold">class</span> <span style="color:#3f8058">=</span> <span style="color:#7f8c8d">std::is_pointer</span><span style="color:#3f8058">></span>
0090 <span style="font-weight:bold">struct</span> class1
0091   <span style="color:#3f8058">:</span> <span style="font-weight:bold">private</span> <span style="color:#7f8c8d">std::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">,</span> <span style="font-weight:bold">public</span> U
0092 <span style="color:#3f8058">{</span>
0093     class1<span style="color:#3f8058">()</span>
0094         <span style="color:#fdbc4b;font-weight:bold">try</span>
0095         <span style="color:#3f8058">:</span> <span style="color:#808080">_member1</span><span style="color:#3f8058">(</span>xxx<span style="color:#3f8058">)</span>
0096     <span style="color:#3f8058">{}</span>
0097         <span style="color:#fdbc4b;font-weight:bold">catch</span><span style="color:#3f8058">(...)</span>
0098     <span style="color:#3f8058">{}</span>
0099 
0100     class1<span style="color:#3f8058">(</span>class1<span style="color:#3f8058">&amp;&amp;)</span> <span style="color:#3f8058">=</span> <span style="color:#fdbc4b;font-weight:bold">default</span><span style="color:#3f8058">;</span>
0101 
0102     <span style="color:#3f8058">~</span>class1<span style="color:#3f8058">()</span>
0103     <span style="color:#3f8058">{}</span>
0104 
0105     <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0106     <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#2980b9">const</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0107     <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="font-weight:bold">noexcept</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0108     <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#2980b9">const</span> <span style="font-weight:bold">noexcept</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0109     <span style="font-weight:bold">virtual</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#2980b9">const</span> <span style="font-weight:bold">noexcept</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0110     <span style="color:#2980b9">static</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#3f8058">{</span> <span style="color:#fdbc4b;font-weight:bold">return</span><span style="color:#3f8058">;</span> <span style="color:#3f8058">}</span>
0111     <span style="font-weight:bold">constexpr</span> <span style="color:#2980b9">static</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span> <span style="color:#2980b9">const</span>
0112         <span style="font-weight:bold">noexcept</span><span style="color:#3f8058">(</span><span style="font-weight:bold">noexcept</span><span style="color:#3f8058">(</span><span style="color:#7f8c8d">std::is_pointer</span><span style="color:#3f8058">&lt;</span>U<span style="color:#3f8058">>::</span>value<span style="color:#3f8058">))</span> <span style="font-weight:bold">override</span>
0113     <span style="color:#3f8058">{</span>
0114         xxx<span style="color:#3f8058">::</span><span style="font-weight:bold">template</span> ttt<span style="color:#3f8058">&lt;</span>U<span style="color:#3f8058">>::</span>type <span style="color:#3f8058">{}</span><span style="color:#3f8058">;</span>
0115         xxx<span style="color:#3f8058">.</span><span style="font-weight:bold">template</span> get<span style="color:#3f8058">&lt;</span>U<span style="color:#3f8058">>()</span><span style="color:#3f8058">;</span>
0116         xxx<span style="color:#3f8058">.</span><span style="color:#7f8c8d">std::rdbuf</span><span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0117         <span style="font-weight:bold">auto</span> x <span style="color:#3f8058">=</span> C<span style="color:#3f8058">&lt;</span><span style="color:#3daee9">'a'</span><span style="color:#3f8058">></span> <span style="color:#3f8058">+</span> y<span style="color:#3f8058">;</span>
0118     <span style="color:#3f8058">}</span>
0119 
0120     <span style="color:#2980b9">int</span> <span style="font-weight:bold">operator</span><span style="color:#3f8058">->*(</span>T <span style="color:#3f8058">(</span>C<span style="color:#3f8058">::*</span>m<span style="color:#3f8058">)(</span><span style="color:#2980b9">int</span><span style="color:#3f8058">))</span><span style="color:#3f8058">;</span>
0121     <span style="font-weight:bold">operator</span> <span style="color:#2980b9">value_t</span> <span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0122 
0123 <span style="font-weight:bold">private</span><span style="color:#3f8058">:</span>
0124 <span style="font-weight:bold">protected</span><span style="color:#3f8058">:</span>
0125 <span style="font-weight:bold">public</span><span style="color:#3f8058">:</span>
0126     <span style="color:#2980b9">value_type</span> <span style="color:#808080">_member1</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">NOTE</span><span style="color:#7a7c7d"> internal ?</span>
0127     <span style="color:#2980b9">value_type</span> <span style="color:#808080">__internal</span><span style="color:#3f8058">;</span>
0128     <span style="color:#2980b9">value_type</span> <span style="color:#808080">internal__</span><span style="color:#3f8058">;</span>
0129     <span style="color:#2980b9">value_type</span> <span style="color:#808080">_M_internal</span><span style="color:#3f8058">;</span>
0130     <span style="color:#2980b9">value_t</span> <span style="color:#27aeae">member2_</span><span style="color:#3f8058">;</span>
0131     <span style="color:#2980b9">value_type</span> <span style="color:#27aeae">m_member3</span><span style="color:#3f8058">;</span>
0132 
0133     <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> <span style="color:#27aeae">s_static</span><span style="color:#3f8058">;</span>
0134     <span style="color:#2980b9">static</span> <span style="font-weight:bold">constexpr</span> <span style="color:#2980b9">int</span> <span style="color:#27aeae">s_static</span><span style="color:#3f8058">;</span>
0135     <span style="color:#2980b9">static</span> <span style="font-weight:bold">inline</span> <span style="color:#2980b9">int</span> <span style="color:#27aeae">s_static</span><span style="color:#3f8058">;</span>
0136     <span style="color:#2980b9">static</span> <span style="font-weight:bold">inline</span> <span style="font-weight:bold">constexpr</span> <span style="color:#2980b9">int</span> <span style="color:#27aeae">s_static</span><span style="color:#3f8058">;</span>
0137 <span style="color:#3f8058">}</span><span style="color:#3f8058">;</span>
0138 
0139 <span style="font-weight:bold">constexpr</span> <span style="font-weight:bold">struct</span> <span style="color:#3f8058">:</span> xyz
0140 <span style="color:#3f8058">{</span>
0141     <span style="font-weight:bold">using</span> xyz<span style="color:#3f8058">::</span>xyz<span style="color:#3f8058">;</span>
0142     <span style="font-weight:bold">using</span> xyz<span style="color:#3f8058">::</span><span style="font-weight:bold">operator</span><span style="color:#3f8058">=</span><span style="color:#3f8058">;</span>
0143 
0144     <span style="color:#2980b9">int</span> a <span style="color:#3f8058">:</span> <span style="color:#f67400">1</span><span style="color:#3f8058">;</span>
0145     <span style="color:#2980b9">int</span> b <span style="color:#3f8058">:</span> <span style="color:#f67400">7</span><span style="color:#3f8058">;</span>
0146 <span style="color:#3f8058">}</span> x <span style="color:#3f8058">{}</span><span style="color:#3f8058">;</span>
0147 
0148 <span style="font-weight:bold">template</span><span style="color:#3f8058">&lt;</span><span style="font-weight:bold">class</span> T<span style="color:#3f8058">></span>
0149 <span style="font-weight:bold">using</span> is_pointer <span style="color:#3f8058">=</span> <span style="color:#7f8c8d">std::is_pointer</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">>::</span>type<span style="color:#3f8058">;</span>
0150 
0151 <span style="font-weight:bold">template</span><span style="color:#3f8058">&lt;</span><span style="font-weight:bold">class</span> T<span style="color:#3f8058">></span>
0152 <span style="font-weight:bold">constexpr</span> <span style="font-weight:bold">auto</span> is_pointer_v <span style="color:#3f8058">=</span> <span style="color:#7f8c8d">std::is_pointer</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">>::</span>value<span style="color:#3f8058">;</span>
0153 
0154 <span style="color:#2980b9">uint64_t</span> namespaces<span style="color:#3f8058">()</span>
0155 <span style="color:#3f8058">{</span>
0156     <span style="color:#7f8c8d">std::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0157     <span style="color:#0099ff;font-weight:bold">boost::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0158     <span style="color:#808080">detail::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0159     <span style="color:#808080">details::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0160     <span style="color:#808080">aux::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0161     <span style="color:#808080">internals::vector</span><span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0162     other<span style="color:#3f8058">::</span>vector<span style="color:#3f8058">&lt;</span>T<span style="color:#3f8058">></span><span style="color:#3f8058">;</span>
0163 <span style="color:#3f8058">}</span>
0164 
0165 task<span style="color:#3f8058">&lt;></span> tcp_echo_server<span style="color:#3f8058">()</span> <span style="color:#3f8058">{</span>
0166   <span style="color:#2980b9">char</span> data<span style="color:#3f8058">[</span><span style="color:#f67400">1024</span><span style="color:#3f8058">]</span><span style="color:#3f8058">;</span>
0167   <span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#3f8058">(</span><span style="color:#3f8058">;;</span><span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0168     <span style="color:#2980b9">size_t</span> n <span style="color:#3f8058">=</span> <span style="color:#fdbc4b;font-weight:bold">co_await</span> socket<span style="color:#3f8058">.</span>async_read_some<span style="color:#3f8058">(</span>buffer<span style="color:#3f8058">(</span>data<span style="color:#3f8058">))</span><span style="color:#3f8058">;</span>
0169     <span style="color:#fdbc4b;font-weight:bold">co_await</span> async_write<span style="color:#3f8058">(</span>socket<span style="color:#3f8058">,</span> buffer<span style="color:#3f8058">(</span>data<span style="color:#3f8058">,</span> n<span style="color:#3f8058">))</span><span style="color:#3f8058">;</span>
0170   <span style="color:#3f8058">}</span>
0171 <span style="color:#3f8058">}</span>
0172 
0173 <span style="color:#27ae60">#if 1</span>
0174     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0175 <span style="color:#27ae60">#else</span><span style="color:#7a7c7d"> // else</span>
0176 <span style="color:#7a7c7d">    double foo(const A);</span>
0177 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0178 
0179 <span style="color:#27ae60">#if 0</span>
0180 <span style="color:#7a7c7d">    double foo(const A);</span>
0181 <span style="color:#27ae60">#else</span> <span style="color:#7a7c7d">// else</span>
0182     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0183 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0184 
0185 <span style="color:#27ae60">#if 1</span>
0186     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0187 <span style="color:#27ae60">#elif</span><span style="color:#7a7c7d"> 1</span>
0188 <span style="color:#7a7c7d">    double foo(const A);</span>
0189 <span style="color:#7a7c7d">#elif 0</span>
0190 <span style="color:#7a7c7d">    double foo(const A);</span>
0191 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0192 
0193 <span style="color:#27ae60">#if 0</span>
0194 <span style="color:#7a7c7d">    double foo(const A);</span>
0195 <span style="color:#27ae60">#elif 1</span>
0196     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0197 <span style="color:#27ae60">#elif</span><span style="color:#7a7c7d"> 0</span>
0198 <span style="color:#7a7c7d">    double foo(const A);</span>
0199 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0200 
0201 <span style="color:#27ae60">#if 0</span>
0202 <span style="color:#7a7c7d">    double foo(const A);</span>
0203 <span style="color:#27ae60">#elif a</span>
0204     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0205 <span style="color:#27ae60">#elif 0</span>
0206 <span style="color:#7a7c7d">    double foo(const A);</span>
0207 <span style="color:#27ae60">#elif a</span>
0208     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0209 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">// else</span>
0210     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0211 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0212 
0213 <span style="color:#27ae60">#if 0 </span><span style="color:#7a7c7d">// blah blah</span>
0214 <span style="color:#7a7c7d">    double foo(const A);</span>
0215 <span style="color:#27ae60">#elif 1 </span><span style="color:#7a7c7d">// blah blah</span>
0216     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0217 <span style="color:#27ae60">#else</span><span style="color:#7a7c7d"> // else</span>
0218 <span style="color:#7a7c7d">    double foo(const A);</span>
0219 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0220 
0221 <span style="color:#27ae60">#if 0 || a</span>
0222     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0223 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">// else</span>
0224     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0225 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0226 
0227 <span style="color:#27ae60">#if 1 || a</span>
0228     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0229 <span style="color:#27ae60">#else</span><span style="color:#7a7c7d"> // else</span>
0230 <span style="color:#7a7c7d">    double foo(const A);</span>
0231 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0232 
0233 <span style="color:#27ae60">#if 0 &amp;&amp; a</span>
0234     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0235 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">// else</span>
0236     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0237 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0238 
0239 <span style="color:#27ae60">#if 1 &amp;&amp; a</span>
0240     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0241 <span style="color:#27ae60">#else </span><span style="color:#7a7c7d">// else</span>
0242     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0243 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0244 
0245 <span style="color:#27ae60">#if a</span>
0246     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0247 <span style="color:#27ae60">#elif 0</span>
0248 <span style="color:#7a7c7d">    double foo(const A);</span>
0249 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0250 
0251 <span style="color:#27ae60">#if a</span>
0252     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0253 <span style="color:#27ae60">#elif 1</span>
0254     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0255 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0256 
0257 <span style="color:#27ae60">#if a</span>
0258     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0259 <span style="color:#27ae60">#elif a</span>
0260     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> A<span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0261 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0262 
0263 <span style="color:#2980b9">int</span> bar<span style="color:#3f8058">(</span><span style="color:#2980b9">void</span><span style="color:#3f8058">*</span>p<span style="color:#3f8058">,</span> <span style="color:#2980b9">void</span> <span style="color:#3f8058">*</span> pp<span style="color:#3f8058">)</span>
0264 <span style="color:#3f8058">{</span>
0265 <span style="color:#27ae60"># if 0</span>
0266 <span style="color:#7a7c7d">    double foo();</span>
0267 <span style="color:#27ae60"># else</span> <span style="color:#7a7c7d">// else</span>
0268     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0269 <span style="color:#27ae60"># endif </span><span style="color:#7a7c7d">// end</span>
0270 <span style="color:#3f8058">}</span>
0271 
0272 <span style="color:#27ae60">#if abc 0</span>
0273     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0274 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0275 
0276 <span style="color:#27ae60">#if xxx</span>
0277     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0278 <span style="color:#27ae60">#else</span>
0279     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0280 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0281 
0282 <span style="color:#27ae60">#if xxx</span>
0283     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0284 <span style="color:#27ae60">#elif xxx </span><span style="color:#7a7c7d">// elseif</span>
0285     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0286 <span style="color:#27ae60">#elif xxx </span><span style="color:#7a7c7d">// elseif</span>
0287     <span style="color:#2980b9">double</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0288 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0289 
0290 <span style="color:#7a7c7d">// error</span>
0291 <span style="color:#da4453;text-decoration:underline">#</span>
0292 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">d</span>
0293 <span style="color:#27ae60"># </span><span style="color:#da4453;text-decoration:underline">d</span>
0294 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">if</span>
0295 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">elif</span>
0296 <span style="color:#27ae60">#endif</span>
0297 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">ifndef</span>
0298 <span style="color:#27ae60">#endif</span>
0299 <span style="color:#27ae60">#</span><span style="color:#da4453;text-decoration:underline">ifdef 0</span>
0300 <span style="color:#27ae60">#endif </span><span style="color:#7a7c7d">// end</span>
0301 
0302 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> intWithSuffix <span style="color:#3f8058">=</span> <span style="color:#f67400">42</span><span style="color:#7f8c8d">ull</span><span style="color:#3f8058">;</span>
0303 <span style="color:#2980b9">static</span> <span style="color:#2980b9">long</span> intWithSuffixAndPrefix <span style="color:#3f8058">=</span> <span style="color:#f67400">0b0101</span><span style="color:#7f8c8d">L</span><span style="color:#3f8058">;</span>
0304 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> octNum <span style="color:#3f8058">=</span> <span style="color:#f67400">07232</span><span style="color:#3f8058">;</span>
0305 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> invalidOctNum <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">9231</span><span style="color:#3f8058">;</span>
0306 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> hexNum <span style="color:#3f8058">=</span> <span style="color:#f67400">0xDEADBEEF42</span><span style="color:#3f8058">;</span>
0307 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> invalidHexNum <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">xGLDFKG</span><span style="color:#3f8058">;</span>
0308 <span style="color:#2980b9">static</span> <span style="color:#2980b9">char</span> binNum <span style="color:#3f8058">=</span> <span style="color:#f67400">0b0101010</span><span style="color:#3f8058">;</span>
0309 
0310 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int64_t</span> intWithSuffix <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">42</span><span style="color:#7f8c8d">LL</span><span style="color:#3f8058">;</span>
0311 <span style="color:#2980b9">static</span> <span style="color:#2980b9">long</span> intWithSuffixAndPrefix <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0b0101</span><span style="color:#7f8c8d">L</span><span style="color:#3f8058">;</span>
0312 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> octNum <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">07232</span><span style="color:#3f8058">;</span>
0313 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> invalidOctNum <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">9231</span><span style="color:#3f8058">;</span>
0314 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int64_t</span> hexNum <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0xDEADBEEF42</span><span style="color:#3f8058">;</span>
0315 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int64_t</span> invalidHexNum <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">xGLDFKG</span><span style="color:#3f8058">;</span>
0316 <span style="color:#2980b9">static</span> <span style="color:#2980b9">char</span> binNum <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0b0101010</span><span style="color:#3f8058">;</span>
0317 
0318 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> intWithSuffixWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">4'2</span><span style="color:#7f8c8d">ull</span><span style="color:#3f8058">;</span>
0319 <span style="color:#2980b9">static</span> <span style="color:#2980b9">long</span> intWithSuffixAndPrefixWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">0b0'10'1</span><span style="color:#7f8c8d">L</span><span style="color:#3f8058">;</span>
0320 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> octNumWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">07'232</span><span style="color:#3f8058">;</span>
0321 <span style="color:#2980b9">static</span> <span style="color:#2980b9">int</span> invalidOctNumWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">9'23'1</span><span style="color:#3f8058">;</span>
0322 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> hexNumWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">0xD'EAD'BE'EF'42</span><span style="color:#3f8058">;</span>
0323 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> invalidHexNumWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">0</span><span style="color:#da4453;text-decoration:underline">xGLD'FKG</span><span style="color:#3f8058">;</span>
0324 <span style="color:#2980b9">static</span> <span style="color:#2980b9">char</span> binNumWithSep <span style="color:#3f8058">=</span> <span style="color:#f67400">0b0'1010'10</span><span style="color:#3f8058">;</span>
0325 
0326 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> invalidSep <span style="color:#3f8058">=</span> <span style="color:#f67400">42</span><span style="color:#da4453;text-decoration:underline">'</span><span style="color:#7f8c8d">ull</span><span style="color:#3f8058">;</span>
0327 <span style="color:#2980b9">static</span> <span style="color:#2980b9">uint64_t</span> invalidSep <span style="color:#3f8058">=</span> <span style="color:#f67400">42</span><span style="color:#da4453;text-decoration:underline">'</span><span style="color:#3f8058">;</span>
0328 
0329 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d1 <span style="color:#3f8058">=</span> <span style="color:#f67400">42.</span><span style="color:#3f8058">;</span>
0330 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d2 <span style="color:#3f8058">=</span> <span style="color:#f67400">.42</span><span style="color:#3f8058">;</span>
0331 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d2a <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0.49</span><span style="color:#3f8058">;</span>
0332 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d2b <span style="color:#3f8058">=</span> <span style="color:#3f8058">-</span><span style="color:#f67400">0.09</span><span style="color:#3f8058">;</span>
0333 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d3 <span style="color:#3f8058">=</span> <span style="color:#f67400">42.3e1</span><span style="color:#3f8058">;</span>
0334 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d4 <span style="color:#3f8058">=</span> <span style="color:#f67400">.2e-12</span><span style="color:#3f8058">;</span>
0335 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d5 <span style="color:#3f8058">=</span> <span style="color:#f67400">32.e+12</span><span style="color:#3f8058">;</span>
0336 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> invalidD1 <span style="color:#3f8058">=</span> <span style="color:#f67400">32.</span><span style="color:#da4453;text-decoration:underline">e</span><span style="color:#3f8058">+</span>a12<span style="color:#3f8058">;</span>
0337 <span style="color:#2980b9">static</span> <span style="color:#2980b9">float</span> floatQualifier <span style="color:#3f8058">=</span> <span style="color:#f67400">23.123</span><span style="color:#7f8c8d">f</span><span style="color:#3f8058">;</span>
0338 <span style="color:#7a7c7d">// Hexadecimal floating point (c++17)</span>
0339 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d6 <span style="color:#3f8058">=</span> <span style="color:#f67400">0x1ffp10</span><span style="color:#3f8058">;</span>
0340 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d7 <span style="color:#3f8058">=</span> <span style="color:#f67400">0X0p-1</span><span style="color:#3f8058">;</span>
0341 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d8 <span style="color:#3f8058">=</span> <span style="color:#f67400">0x1.p0</span><span style="color:#3f8058">;</span>
0342 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d9 <span style="color:#3f8058">=</span> <span style="color:#f67400">0xf.p-1</span><span style="color:#7f8c8d">L</span><span style="color:#3f8058">;</span>
0343 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d10 <span style="color:#3f8058">=</span> <span style="color:#f67400">0x0.123p-1</span><span style="color:#3f8058">;</span>
0344 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> d11 <span style="color:#3f8058">=</span> <span style="color:#f67400">0xa.bp10</span><span style="color:#7f8c8d">l</span><span style="color:#3f8058">;</span>
0345 <span style="color:#2980b9">static</span> <span style="color:#2980b9">double</span> invalidD2 <span style="color:#3f8058">=</span> <span style="color:#f67400">0x0.123</span><span style="color:#da4453;text-decoration:underline">p</span><span style="color:#3f8058">-</span>a<span style="color:#3f8058">;</span>
0346 <span style="color:#2980b9">static</span> <span style="color:#2980b9">float</span> floatQualifier <span style="color:#3f8058">=</span> <span style="color:#f67400">0xf.p-1</span><span style="color:#7f8c8d">f</span><span style="color:#3f8058">;</span>
0347 
0348 <span style="color:#f67400">60</span><span style="color:#7f8c8d">min</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// c++17</span>
0349 <span style="color:#f67400">60.</span><span style="color:#7f8c8d">min</span><span style="color:#3f8058">;</span>
0350 <span style="color:#f67400">60.3</span><span style="color:#7f8c8d">min</span><span style="color:#3f8058">;</span>
0351 <span style="color:#f67400">0x1ffp10</span><span style="color:#7f8c8d">min</span><span style="color:#3f8058">;</span>
0352 <span style="color:#f67400">2</span><span style="color:#7f8c8d">us</span>
0353 <span style="color:#f67400">2</span><span style="color:#7f8c8d">d</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// c++20</span>
0354 <span style="color:#f67400">23.</span><span style="color:#3f8058">_f</span>
0355 <span style="color:#f67400">23.</span><span style="color:#3f8058">_fd</span>
0356 <span style="color:#f67400">2.3</span><span style="color:#3f8058">_f</span>
0357 <span style="color:#f67400">2.3</span><span style="color:#3f8058">_fd</span>
0358 <span style="color:#f67400">2.</span><span style="color:#3f8058">_f</span>
0359 <span style="color:#f67400">2.</span><span style="color:#3f8058">_fd</span>
0360 <span style="color:#f67400">2e4</span><span style="color:#3f8058">_f</span>
0361 <span style="color:#f67400">2e4</span><span style="color:#3f8058">_fd</span>
0362 
0363 <span style="color:#7a7c7d">// error</span>
0364 <span style="color:#f67400">23.</span><span style="color:#7f8c8d">f</span><span style="color:#da4453;text-decoration:underline">d</span>
0365 <span style="color:#f67400">2</span><span style="color:#da4453;text-decoration:underline">e_fd</span>
0366 <span style="color:#f67400">2</span><span style="color:#da4453;text-decoration:underline">e</span>
0367 <span style="color:#f67400">1.</span><span style="color:#da4453;text-decoration:underline">y</span>
0368 <span style="color:#f67400">1.0</span><span style="color:#da4453;text-decoration:underline">_E+</span><span style="color:#f67400">2.0</span>
0369 <span style="color:#f67400">1.0</span><span style="color:#3f8058">_E</span> <span style="color:#3f8058">+</span><span style="color:#f67400">2.0</span> <span style="color:#7a7c7d">// ok</span>
0370 <span style="color:#f67400">1</span><span style="color:#da4453;text-decoration:underline">_p+</span><span style="color:#f67400">2</span>
0371 <span style="color:#f67400">1</span><span style="color:#3f8058">_p</span> <span style="color:#3f8058">+</span><span style="color:#f67400">2</span> <span style="color:#7a7c7d">// ok</span>
0372 <span style="color:#f67400">4</span><span style="color:#7f8c8d">s</span><span style="color:#da4453;text-decoration:underline">.count</span><span style="color:#3f8058">()</span>
0373 <span style="color:#f67400">4</span><span style="color:#7f8c8d">s</span><span style="color:#da4453;text-decoration:underline">.</span> count<span style="color:#3f8058">()</span>
0374 <span style="color:#f67400">4</span><span style="color:#7f8c8d">s</span> <span style="color:#3f8058">.</span>count<span style="color:#3f8058">()</span> <span style="color:#7a7c7d">// ok</span>
0375 
0376 <span style="color:#2980b9">static</span> <span style="color:#2980b9">bool</span> yes <span style="color:#3f8058">=</span> <span style="font-weight:bold">true</span><span style="color:#3f8058">;</span>
0377 <span style="color:#2980b9">static</span> <span style="color:#2980b9">bool</span> no <span style="color:#3f8058">=</span> <span style="font-weight:bold">false</span><span style="color:#3f8058">;</span>
0378 
0379 <span style="color:#7a7c7d">// *char*</span>
0380 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span>     c1 <span style="color:#3f8058">=</span> <span style="color:#3daee9">'c'</span><span style="color:#3f8058">;</span>
0381 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span>     c1a <span style="color:#3f8058">=</span> <span style="color:#3daee9">u8</span><span style="color:#3daee9">'c'</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// utf-8 char (c++17)</span>
0382 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char16_t</span> c1b <span style="color:#3f8058">=</span> <span style="color:#3daee9">u</span><span style="color:#3daee9">'c'</span><span style="color:#3f8058">;</span>
0383 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char32_t</span> c1c <span style="color:#3f8058">=</span> <span style="color:#3daee9">U</span><span style="color:#3daee9">'c'</span><span style="color:#3f8058">;</span>
0384 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">wchar_t</span>  c1d <span style="color:#3f8058">=</span> <span style="color:#3daee9">L</span><span style="color:#3daee9">'c'</span><span style="color:#3f8058">;</span>
0385 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span> c2 <span style="color:#3f8058">=</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\n</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0386 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span> c2a <span style="color:#3f8058">=</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\120</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// octal</span>
0387 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span> c2b <span style="color:#3f8058">=</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\x1f</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// hex</span>
0388 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span> c2c <span style="color:#3f8058">=</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\'</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0389 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span> c2d <span style="color:#3f8058">=</span> <span style="color:#3daee9">'</span><span style="color:#3daee9">\\</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0390 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">wchar_t</span> c2e <span style="color:#3f8058">=</span> <span style="color:#3daee9">L</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\x1ff</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// hex</span>
0391 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">wchar_t</span> c2e <span style="color:#3f8058">=</span> <span style="color:#3daee9">U</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\x1fffffff</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// hex</span>
0392 <span style="color:#7a7c7d">// error</span>
0393 <span style="color:#3daee9">'</span><span style="color:#3daee9">\x12</span><span style="color:#da4453;text-decoration:underline">3</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0394 <span style="color:#3daee9">'\</span><span style="color:#da4453;text-decoration:underline">u1234</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0395 <span style="color:#3daee9">'\</span><span style="color:#da4453;text-decoration:underline">U12345678</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0396 <span style="color:#3daee9">U</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\u1234</span><span style="color:#da4453;text-decoration:underline">5</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0397 <span style="color:#3daee9">u</span><span style="color:#3daee9">'\</span><span style="color:#da4453;text-decoration:underline">u123</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0398 <span style="color:#3daee9">U</span><span style="color:#3daee9">'\</span><span style="color:#da4453;text-decoration:underline">U1234567</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0399 <span style="color:#3daee9">U</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\U12345678</span><span style="color:#da4453;text-decoration:underline">9</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0400 <span style="color:#3daee9">U</span><span style="color:#3daee9">'</span><span style="color:#3daee9">\x12345678</span><span style="color:#da4453;text-decoration:underline">9</span><span style="color:#3daee9">'</span><span style="color:#3f8058">;</span>
0401 
0402 <span style="color:#7a7c7d">// string</span>
0403 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> c3 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"string"</span><span style="color:#3f8058">;</span>
0404 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> c4 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"</span><span style="color:#3daee9">\"</span><span style="color:#f44f4f">string</span><span style="color:#3daee9">\n\t\012\x12\"</span><span style="color:#f44f4f">"</span><span style="color:#3f8058">;</span>
0405 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> c5 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"multiline </span><span style="color:#3f8058">\</span>
0406 <span style="color:#f44f4f">    string"</span><span style="color:#3f8058">;</span>
0407 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> c6 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">"multifragment"</span> <span style="color:#f44f4f">"other""string"</span><span style="color:#3f8058">;</span>
0408 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span>      c6a <span style="color:#3f8058">=</span> <span style="color:#f44f4f">u8</span><span style="color:#f44f4f">"string"</span><span style="color:#3f8058">;</span>
0409 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char16_t</span><span style="color:#3f8058">*</span>  c6b <span style="color:#3f8058">=</span> <span style="color:#f44f4f">u</span><span style="color:#f44f4f">"string"</span><span style="color:#3f8058">;</span>
0410 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char32_t</span><span style="color:#3f8058">*</span>  c6c <span style="color:#3f8058">=</span> <span style="color:#f44f4f">U</span><span style="color:#f44f4f">"string"</span><span style="color:#3f8058">;</span>
0411 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">wchar_t</span><span style="color:#3f8058">*</span>   c6d <span style="color:#3f8058">=</span> <span style="color:#f44f4f">L</span><span style="color:#f44f4f">"string"</span><span style="color:#3f8058">;</span>
0412 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> rawString1 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">R</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">string</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0413 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span>      rawString1a <span style="color:#3f8058">=</span> <span style="color:#f44f4f">u8R</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">string</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0414 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char16_t</span><span style="color:#3f8058">*</span>  rawString1b <span style="color:#3f8058">=</span> <span style="color:#f44f4f">uR</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">string</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0415 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char32_t</span><span style="color:#3f8058">*</span>  rawString1c <span style="color:#3f8058">=</span> <span style="color:#f44f4f">UR</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">string</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0416 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">wchar_t</span><span style="color:#3f8058">*</span>   rawString1d <span style="color:#3f8058">=</span> <span style="color:#f44f4f">LR</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">string\nstring</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0417 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> rawString2 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">R</span><span style="color:#f44f4f">"ab(</span><span style="color:#da4453">string\nstring</span><span style="color:#3daee9">%s</span><span style="color:#da4453">)ab "</span><span style="color:#f44f4f">)ab"</span><span style="color:#3f8058">;</span>
0418 <span style="color:#2980b9">static</span> <span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*</span> rawString3 <span style="color:#3f8058">=</span> <span style="color:#f44f4f">R</span><span style="color:#f44f4f">"ab(</span><span style="color:#da4453">string</span>
0419 <span style="color:#da4453">string%</span><span style="color:#f44f4f">)ab"</span><span style="color:#3f8058">;</span>
0420 <span style="color:#f44f4f">" </span><span style="color:#3daee9">%d</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">%d</span><span style="color:#f44f4f">f fd"</span> <span style="color:#f44f4f">U</span><span style="color:#f44f4f">"ds </span><span style="color:#3daee9">%d</span><span style="color:#f44f4f">"</span> <span style="color:#f44f4f">R</span><span style="color:#f44f4f">"(</span><span style="color:#da4453">a</span><span style="color:#3daee9">%d</span><span style="color:#f44f4f">)"</span><span style="color:#3f8058">;</span>
0421 <span style="color:#f44f4f">"</span><span style="color:#3daee9">\x{12343}</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\x{1}</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\o{12121}</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\u{1221a}</span><span style="color:#f44f4f"> </span><span style="color:#3daee9">\N{LATIN CAPITAL LETTER A WITH MACRON}</span><span style="color:#f44f4f">"</span>
0422   <span style="color:#f44f4f">"</span><span style="color:#3daee9">\x12</span><span style="color:#da4453;text-decoration:underline">3</span><span style="color:#f44f4f">xsk"</span><span style="color:#3f8058">;</span>
0423  <span style="color:#f44f4f">u</span><span style="color:#f44f4f">"</span><span style="color:#3daee9">\x123</span><span style="color:#f44f4f">xsk"</span><span style="color:#3f8058">;</span>
0424 <span style="color:#7a7c7d">// error</span>
0425 <span style="color:#f44f4f">u8</span><span style="color:#f44f4f">"</span><span style="color:#3daee9">\x12</span><span style="color:#da4453;text-decoration:underline">3</span><span style="color:#f44f4f">xsk"</span><span style="color:#3f8058">;</span>
0426 <span style="color:#f44f4f">"</span><span style="color:#da4453;text-decoration:underline">\x{123</span><span style="color:#f44f4f">x43} </span><span style="color:#da4453;text-decoration:underline">\o{121</span><span style="color:#f44f4f">821} </span><span style="color:#da4453;text-decoration:underline">\u{12</span><span style="color:#f44f4f">x21as} </span><span style="color:#da4453;text-decoration:underline">\N{LATIN CAPITAL </span><span style="color:#f44f4f">letter A WITH MACRON}"</span>
0427 
0428 <span style="color:#7a7c7d">// printf format</span>
0429 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">%10s</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%-10s</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%*s</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%-10.*s</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%-*.*s</span><span style="color:#f44f4f">a"</span>
0430 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">%c</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%*c</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%%</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%i</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%d</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%.6i</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%.0i</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%+i</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%i</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%x</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%#x</span><span style="color:#f44f4f">a"</span>
0431 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">%.0f</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%.32f</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%05.2f</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%.2f</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%5.2f</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%E</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">%a</span><span style="color:#f44f4f">a"</span>
0432 <span style="color:#7a7c7d">// std::format</span>
0433 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">{{</span><span style="color:#f44f4f">:6</span><span style="color:#3daee9">}}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{:6}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{:*&lt;6}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{:6d}</span><span style="color:#f44f4f">a"</span>
0434 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">{0:}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{0:+}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{0:-}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{0: }</span><span style="color:#f44f4f">a"</span>
0435 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">{:+06d}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{:#06x}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{:&lt;06}</span><span style="color:#f44f4f">a"</span>
0436 <span style="color:#f44f4f">"a</span><span style="color:#3daee9">{:{}}</span><span style="color:#f44f4f">a</span><span style="color:#3daee9">{0:{1}.{2}f}</span><span style="color:#f44f4f">a"</span>
0437 <span style="color:#3f8058">;</span>
0438 
0439 <span style="color:#7a7c7d">// UDL (c++11)</span>
0440 
0441 <span style="font-weight:bold">operator</span><span style="color:#f44f4f">""</span>_a<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0442 <span style="font-weight:bold">operator</span> <span style="color:#f44f4f">""</span>_a<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0443 <span style="font-weight:bold">operator</span> <span style="color:#f44f4f">""</span> _a<span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0444 <span style="color:#7a7c7d">// invalid suffix</span>
0445 <span style="font-weight:bold">operator</span> <span style="color:#f44f4f">""</span> <span style="color:#da4453;text-decoration:underline">a</span><span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0446 <span style="font-weight:bold">operator</span> <span style="color:#f44f4f">""</span><span style="color:#da4453;text-decoration:underline">a</span><span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0447 <span style="font-weight:bold">operator</span><span style="color:#f44f4f">""</span><span style="color:#da4453;text-decoration:underline">a</span><span style="color:#3f8058">(</span><span style="color:#2980b9">const</span> <span style="color:#2980b9">char</span><span style="color:#3f8058">*)</span><span style="color:#3f8058">;</span>
0448 
0449 <span style="color:#f44f4f">"string"</span><span style="color:#3f8058">_s</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// user</span>
0450 <span style="color:#f44f4f">"string"</span><span style="color:#7f8c8d">s</span><span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// standard</span>
0451 <span style="color:#f44f4f">"string"</span><span style="color:#3f8058">_s</span><span style="color:#3f8058">-</span>b<span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// -b is not part of the string</span>
0452 
0453 <span style="color:#7a7c7d">// Macro</span>
0454 
0455 MY_XXX<span style="color:#3f8058">;</span>
0456 <span style="color:#0099ff;font-weight:bold">BOOST_XXX</span><span style="color:#3f8058">;</span>
0457 <span style="color:#27ae60">__STDC_VERSION__</span><span style="color:#3f8058">;</span>
0458 <span style="color:#27ae60">__TIME__</span><span style="color:#3f8058">;</span>
0459 <span style="color:#27ae60">__cplusplus</span><span style="color:#3f8058">;</span>
0460 
0461 <span style="color:#7a7c7d">// Attributes</span>
0462 
0463 <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">noreturn</span><span style="color:#3f8058">]]</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0464 <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">deprecated</span><span style="color:#3f8058">]]</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0465 <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">deprecated</span><span style="color:#3f8058">(</span><span style="color:#f44f4f">"because"</span><span style="color:#3f8058">)]]</span> <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0466 <span style="color:#2980b9">void</span> foo<span style="color:#3f8058">([[</span><span style="color:#2980b9;font-style:italic">carries_dependency</span><span style="color:#3f8058">]]</span> <span style="color:#2980b9">int</span><span style="color:#3f8058">)</span><span style="color:#3f8058">;</span>
0467 
0468 <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">opt</span><span style="color:#3f8058">(</span><span style="color:#f67400">1</span><span style="color:#3f8058">)</span><span style="color:#3f8058">,</span><span style="color:#2980b9;font-style:italic"> debug</span><span style="color:#3f8058">]]</span>
0469 <span style="color:#3f8058">[[</span><span style="font-weight:bold">using</span><span style="color:#2980b9;font-style:italic"> CC</span><span style="color:#3f8058">:</span><span style="color:#2980b9;font-style:italic"> opt</span><span style="color:#3f8058">(</span><span style="color:#f67400">1</span><span style="color:#3f8058">)</span><span style="color:#3f8058">,</span><span style="color:#2980b9;font-style:italic"> debug</span><span style="color:#3f8058">]]</span> <span style="color:#7a7c7d">// c++17</span>
0470 <span style="color:#3f8058">[[</span><span style="font-weight:bold">using</span><span style="color:#2980b9;font-style:italic"> CC</span><span style="color:#3f8058">:</span><span style="color:#2980b9;font-style:italic"> CC</span><span style="color:#3f8058">::</span><span style="color:#2980b9;font-style:italic">opt</span><span style="color:#3f8058">(</span><span style="color:#f67400">1</span><span style="color:#3f8058">)]]</span> <span style="color:#7a7c7d">// c++17</span>
0471 
0472 <span style="color:#3f8058">[[</span><span style="color:#0099ff;font-weight:bold;font-style:italic">gnu::assume_aligned</span><span style="color:#3f8058">(</span><span style="color:#f67400">3'2</span><span style="color:#7f8c8d">l</span><span style="color:#3f8058">,</span><span style="color:#f67400">2</span><span style="color:#3f8058">)]]</span> <span style="color:#2980b9">void</span><span style="color:#3f8058">*</span> f<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0473 <span style="color:#3f8058">[[</span><span style="font-weight:bold">using</span><span style="color:#2980b9;font-style:italic"> </span><span style="color:#0099ff;font-weight:bold;font-style:italic">gnu</span><span style="color:#3f8058">:</span><span style="color:#2980b9;font-style:italic"> assume_aligned</span><span style="color:#3f8058">(</span><span style="color:#f67400">3</span><span style="color:#3f8058">)]]</span>
0474 <span style="color:#3f8058">[[</span><span style="color:#0099ff;font-weight:bold;font-style:italic">clang::assume_aligned</span><span style="color:#3f8058">(</span><span style="color:#f67400">3</span><span style="color:#3f8058">)]]</span>
0475 
0476 <span style="color:#2980b9">void</span> f<span style="color:#3f8058">([[</span><span style="color:#2980b9;font-style:italic">maybe_unused</span><span style="color:#3f8058">]]</span> <span style="color:#2980b9">int</span> val<span style="color:#3f8058">)</span>
0477 <span style="color:#3f8058">{</span>
0478     <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">maybe_unused</span><span style="color:#3f8058">]]</span> <span style="color:#2980b9">int</span> x<span style="color:#3f8058">;</span>
0479     <span style="color:#fdbc4b;font-weight:bold">switch</span> <span style="color:#3f8058">(</span>x <span style="color:#3f8058">=</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span> x<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0480         <span style="color:#fdbc4b;font-weight:bold">case</span> <span style="color:#f67400">1</span><span style="color:#3f8058">:</span>
0481             <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">fallthrough</span><span style="color:#3f8058">]]</span><span style="color:#3f8058">;</span>
0482         <span style="color:#fdbc4b;font-weight:bold">case</span> XXX<span style="color:#3f8058">:</span>
0483         <span style="color:#fdbc4b;font-weight:bold">case</span> Class<span style="color:#3f8058">::</span>foo<span style="color:#3f8058">():</span>
0484             <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">fallthrough</span><span style="color:#3f8058">]]</span><span style="color:#3f8058">;</span>
0485         <span style="color:#fdbc4b;font-weight:bold">default</span><span style="color:#3f8058">:</span>
0486             <span style="color:#3f8058">;</span>
0487     <span style="color:#3f8058">}</span>
0488 
0489     <span style="color:#7a7c7d">// c++17: fold expression</span>
0490     <span style="color:#3f8058">(</span>args <span style="color:#3f8058">+</span> <span style="color:#3f8058">...</span> <span style="color:#3f8058">+</span> <span style="color:#3f8058">(</span><span style="color:#f67400">1</span> <span style="color:#3f8058">*</span> <span style="color:#f67400">2</span><span style="color:#3f8058">))</span><span style="color:#3f8058">;</span>
0491     <span style="color:#3f8058">(</span>v<span style="color:#3f8058">.</span>push_back<span style="color:#3f8058">(</span>args<span style="color:#3f8058">)</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">...)</span><span style="color:#3f8058">;</span>
0492 
0493     <span style="color:#3f8058">[[</span><span style="color:#2980b9;font-style:italic">omp</span><span style="color:#3f8058">::</span><span style="color:#2980b9;font-style:italic">parallel</span><span style="color:#3f8058">]]</span> <span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#3f8058">(</span><span style="font-weight:bold">auto</span><span style="color:#3f8058">&amp;&amp;</span> x <span style="color:#3f8058">:</span> v<span style="color:#3f8058">)</span>
0494         x<span style="color:#3f8058">;</span>
0495     <span style="color:#fdbc4b;font-weight:bold">for</span> <span style="color:#3f8058">(</span><span style="font-weight:bold">auto</span><span style="color:#3f8058">&amp;&amp;</span> <span style="color:#3f8058">[</span>first<span style="color:#3f8058">,</span>second<span style="color:#3f8058">]</span> <span style="color:#3f8058">:</span> mymap<span style="color:#3f8058">)</span> <span style="color:#3f8058">{</span>
0496     <span style="color:#3f8058">}</span>
0497 
0498     <span style="font-weight:bold">auto</span> <span style="color:#3f8058">[</span>x<span style="color:#3f8058">,</span> y<span style="color:#3f8058">]</span> <span style="color:#3f8058">=</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0499 
0500     <span style="color:#3f8058">[</span>x <span style="color:#3f8058">=</span> <span style="color:#f67400">1</span><span style="color:#3f8058">,</span> <span style="color:#3f8058">=</span>y<span style="color:#3f8058">](){}</span><span style="color:#3f8058">;</span>
0501 
0502     <span style="font-weight:bold">decltype</span><span style="color:#3f8058">((</span><span style="font-weight:bold">auto</span><span style="color:#3f8058">))</span> x <span style="color:#3f8058">=</span> foo<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0503 <span style="color:#3f8058">}</span>
0504 
0505 <span style="font-weight:bold">auto</span> f<span style="color:#3f8058">()</span> <span style="color:#3f8058">-></span> <span style="font-weight:bold">decltype</span><span style="color:#3f8058">(</span>foo<span style="color:#3f8058">())</span><span style="color:#3f8058">;</span>
0506 
0507 <span style="color:#0099ff;font-weight:bold;font-style:italic">__attribute__((pure))</span> <span style="color:#2980b9">void</span> f<span style="color:#3f8058">()</span><span style="color:#3f8058">;</span>
0508 
0509 label<span style="color:#3f8058">:</span>
0510 <span style="color:#fdbc4b;font-weight:bold">goto</span> label<span style="color:#3f8058">;</span>
0511 
0512 
0513 <span style="color:#2980b9;background-color:#153042">//BEGIN region</span>
0514 <span style="color:#7a7c7d">// </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">TODO</span><span style="color:#7a7c7d"> comment </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">FIXME</span><span style="color:#7a7c7d"> comment </span><span style="color:#81ca2d;background-color:#4d1f24;font-weight:bold">###</span><span style="color:#7a7c7d"> comment </span><span style="color:#ca9219;background-color:#451e1a;font-weight:bold">BUG</span><span style="color:#7a7c7d"> comment</span>
0515 <span style="color:#2980b9;background-color:#153042">//END region</span>
0516 
0517 <span style="color:#7a7c7d">// \brief blah blah</span>
0518 <span style="color:#7a7c7d">/// </span><span style="color:#3f8058;font-weight:bold">\brief</span><span style="color:#7a7c7d"> blah blah</span>
0519 
0520 <span style="color:#7a7c7d">/**</span>
0521 <span style="color:#7a7c7d"> * Doxygen</span>
0522 <span style="color:#7a7c7d"> * </span><span style="color:#3f8058;font-weight:bold">@param</span><span style="color:#7a7c7d"> </span><span style="color:#7f8c8d;font-weight:bold">p1</span><span style="color:#7a7c7d"> text</span>
0523 <span style="color:#7a7c7d"> * </span><span style="color:#3f8058;font-weight:bold">\brief</span><span style="color:#7a7c7d"> </span><span style="font-weight:bold">&lt;b></span><span style="color:#7a7c7d">bold text</span><span style="font-weight:bold">&lt;/b></span>
0524 <span style="color:#7a7c7d"> * </span><span style="color:#3f8058;font-weight:bold">\dot</span>
0525 <span style="color:#7a7c7d"> *</span><span style="color:#00a000;font-style:italic"> a -> b</span>
0526 <span style="color:#7a7c7d"> *</span><span style="color:#00a000;font-style:italic"> </span><span style="color:#3f8058;font-weight:bold">\enddot</span>
0527 <span style="color:#7a7c7d"> *</span>
0528 <span style="color:#7a7c7d"> * </span><span style="color:#3f8058;font-weight:bold">\verbatim</span>
0529 <span style="color:#7a7c7d"> *</span><span style="color:#7a7c7d"> &lt;dummy></span>
0530 <span style="color:#7a7c7d"> *</span><span style="color:#7a7c7d"> </span><span style="color:#3f8058;font-weight:bold">\endverbatim</span>
0531 <span style="color:#7a7c7d"> * </span><span style="font-weight:bold">&lt;html></span><span style="color:#7a7c7d">text</span><span style="font-weight:bold">&lt;/html></span>
0532 <span style="color:#7a7c7d"> */</span>
0533 
0534 <span style="color:#27ae60">#endif</span>
0535 
0536 <span style="color:#7a7c7d">// Some GNU macros, cross-referenced from gcc.xml to isocpp.xml</span>
0537 <span style="color:#27ae60">__GCC_ATOMIC_CHAR16_T_LOCK_FREE</span>
0538 <span style="color:#27ae60">__GNUC__</span>
0539 <span style="color:#27ae60">__linux__</span>
0540 
0541 <span style="color:#7a7c7d">// Digraphs (see bug #411508)</span>
0542 <span style="color:#27ae60">%:include </span><span style="color:#27ae60">&lt;stdio.h></span>
0543 <span style="color:#2980b9">int</span> main<span style="color:#3f8058">()</span>
0544 <span style="color:#3f8058">&lt;%</span>
0545     <span style="color:#3f8058">[](){%>()</span><span style="color:#3f8058">;</span>
0546 <span style="color:#3f8058">}</span>
0547 <span style="color:#3f8058">&lt;:&lt;:</span><span style="color:#2980b9;font-style:italic">fallthrough</span><span style="color:#3f8058">]]</span>
0548 
0549 <span style="color:#7a7c7d">/**</span>
0550 <span style="color:#7a7c7d"> * multi-line comment</span>
0551 <span style="color:#7a7c7d"> */</span>
0552 
0553 <span style="color:#7a7c7d">/* comment */</span>
0554 <span style="color:#3f8058">{</span> <span style="color:#3f8058">{</span> <span style="color:#3f8058">}</span> <span style="color:#3f8058">{</span>
0555 <span style="color:#2980b9;background-color:#153042">//BEGIN</span>
0556 <span style="color:#3f8058">}</span>
0557 <span style="color:#2980b9;background-color:#153042">//END</span>
0558 <span style="color:#3f8058">}</span>
0559 
0560 <span style="color:#27ae60">#if 0</span>
0561 <span style="color:#27ae60">#elif 1</span>
0562 <span style="color:#27ae60">#else</span>
0563 <span style="color:#27ae60">#endif</span>
0564 
0565 <span style="color:#27ae60">#if 1</span>
0566 <span style="color:#2980b9">int</span> x<span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// variable shall not be grey</span>
0567 <span style="color:#27ae60">#endif</span>
0568 <span style="color:#27ae60">#if defined (A)</span>
0569 <span style="color:#2980b9">int</span> y<span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// variable shall not be grey</span>
0570 <span style="color:#27ae60">#elif defined (B)</span>
0571 <span style="color:#2980b9">int</span> z<span style="color:#3f8058">;</span> <span style="color:#7a7c7d">// variable shall not be grey</span>
0572 <span style="color:#27ae60">#endif</span>
0573 
0574 <span style="color:#7a7c7d">/*!</span>
0575 <span style="color:#7a7c7d"> * formula </span><span style="color:#3f8058;font-weight:bold">@f$</span><span style="color:#00a000;font-style:italic">a+b</span><span style="color:#3f8058;font-weight:bold">@f$</span><span style="color:#7a7c7d"> inside a block comment</span>
0576 <span style="color:#7a7c7d"> */</span>
0577 
0578 <span style="color:#7a7c7d">//! formula </span><span style="color:#3f8058;font-weight:bold">@f$</span><span style="color:#00a000;font-style:italic">a+b</span><span style="color:#3f8058;font-weight:bold">@f$</span><span style="color:#7a7c7d"> inside a inline comment</span>
0579 <span style="color:#7a7c7d">// formula @f$a+b@f$ inside a normal comment</span>
0580 
0581 <span style="color:#7a7c7d">/// </span><span style="color:#3f8058;font-weight:bold">\b</span><span style="color:#7a7c7d"> </span><span style="color:#7f8c8d;font-weight:bold">sa</span>
0582 </pre></body></html>