File: structFoo.html

package info (click to toggle)
taskflow 3.9.0%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 45,948 kB
  • sloc: cpp: 39,058; xml: 35,572; python: 12,935; javascript: 1,732; makefile: 59; sh: 16
file content (172 lines) | stat: -rw-r--r-- 12,023 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Foo struct | My Project</title>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,600,600i%7CSource+Code+Pro:400,400i,600" />
  <link rel="stylesheet" href="m-dark+documentation.compiled.css" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
<body>
<header><nav id="navigation">
  <div class="m-container">
    <div class="m-row">
      <a href="index.html" id="m-navbar-brand" class="m-col-t-8 m-col-m-none m-left-m">My Project</a>
    </div>
  </div>
</nav></header>
<main><article>
  <div class="m-container m-container-inflatable">
    <div class="m-row">
      <div class="m-col-l-10 m-push-l-1">
        <h1>
          Foo <span class="m-thin">struct</span>
        </h1>
        <p>Pathological cases of function attributes.</p>
        <nav class="m-block m-default">
          <h3>Contents</h3>
          <ul>
            <li>
              Reference
              <ul>
                <li><a href="#pub-static-methods">Public static functions</a></li>
                <li><a href="#typeless-methods">Constructors, destructors, conversion operators</a></li>
                <li><a href="#pub-methods">Public functions</a></li>
              </ul>
            </li>
          </ul>
        </nav>
        <section id="pub-static-methods">
          <h2><a href="#pub-static-methods">Public static functions</a></h2>
          <dl class="m-doc">
            <dt>
              <span class="m-doc-wrap-bumper">static auto <a href="#a77f46786436a39eb3b53343580f41b89" class="m-doc">constexprStaticFunction</a>(</span><span class="m-doc-wrap">) -&gt; int <span class="m-label m-flat m-primary">constexpr</span></span>
            </dt>
            <dd>Constexpr before static.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">static auto <a href="#a37fb9b85cc5a56110f12460a822112a9" class="m-doc">constevalStaticFunction</a>(</span><span class="m-doc-wrap">) -&gt; int <span class="m-label m-flat m-primary">consteval</span></span>
            </dt>
            <dd>Consteval before static.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">static auto <a href="#a178c5f6f19fa2ffb1fc7a346e2e877d9" class="m-doc">staticConstexprFunction</a>(</span><span class="m-doc-wrap">) -&gt; int <span class="m-label m-flat m-primary">constexpr</span></span>
            </dt>
            <dd>Constexpr after static.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">static auto <a href="#a26b977ac73c54993504324aae7a08e08" class="m-doc">staticConstevalFunction</a>(</span><span class="m-doc-wrap">) -&gt; int <span class="m-label m-flat m-primary">consteval</span></span>
            </dt>
            <dd>Consteval after static.</dd>
          </dl>
        </section>
        <section id="typeless-methods">
          <h2><a href="#typeless-methods">Constructors, destructors, conversion operators</a></h2>
          <dl class="m-doc">
            <dt>
              <span class="m-doc-wrap-bumper"><a href="#ad5953d17211071264b501747c67e6fdc" class="m-doc">Foo</a>(</span><span class="m-doc-wrap"><a href="structFoo.html" class="m-doc">Foo</a>&amp;&amp;) <span class="m-label m-flat m-info">defaulted</span> <span class="m-label m-flat m-success">noexcept</span></span>
            </dt>
            <dd>Combined default and noexcept.</dd>
            <dt>
              <span class="m-doc-wrap-bumper"><a href="#aa5e6af28b3d9578c4c1653ef8a7eb8d5" class="m-doc">Foo</a>(</span><span class="m-doc-wrap">const <a href="structFoo.html" class="m-doc">Foo</a>&amp;) <span class="m-label m-flat m-success">noexcept(…)</span></span>
            </dt>
            <dd>Conditional noexcept.</dd>
          </dl>
        </section>
        <section id="pub-methods">
          <h2><a href="#pub-methods">Public functions</a></h2>
          <dl class="m-doc">
            <dt>
              <span class="m-doc-wrap-bumper">auto <a href="#ad9331e22010cb345be1d123831ecc8a0" class="m-doc">operator=</a>(</span><span class="m-doc-wrap">const <a href="structFoo.html" class="m-doc">Foo</a>&amp;) -&gt; <a href="structFoo.html" class="m-doc">Foo</a>&amp; <span class="m-label m-flat m-danger">deleted</span> <span class="m-label m-flat m-success">noexcept(…)</span></span>
            </dt>
            <dd>Combined conditional noexcept and delete.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">void <a href="#a67e9f6865d19c8e7734b182143d5e9b3" class="m-doc">foo</a>(</span><span class="m-doc-wrap">) const <span class="m-label m-flat m-warning">pure virtual</span> <span class="m-label m-flat m-success">noexcept(…)</span></span>
            </dt>
            <dd>Const, conditional noexcept and a pure virtual.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">auto <a href="#a6c32baeb1c9a472657fd3ee8c191aa07" class="m-doc">bar</a>(</span><span class="m-doc-wrap">) -&gt; <a href="structFoo.html" class="m-doc">Foo</a>&amp; <span class="m-label m-flat m-primary">constexpr</span> <span class="m-label m-flat m-success">noexcept</span></span>
            </dt>
            <dd>Random type and constexpr together.</dd>
            <dt>
              <span class="m-doc-wrap-bumper">auto <a href="#ac8cb68a3567b95476f034d3eb4ba1d66" class="m-doc">baz</a>(</span><span class="m-doc-wrap">) -&gt; decltype(auto) <span class="m-label m-flat m-primary">constexpr</span> <span class="m-label m-flat m-success">noexcept</span></span>
            </dt>
            <dd>decltype(auto) and constexpr together</dd>
          </dl>
        </section>
        <section>
          <h2>Function documentation</h2>
          <section class="m-doc-details" id="a77f46786436a39eb3b53343580f41b89"><div>
            <h3>
              <span class="m-doc-wrap-bumper">static int Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a77f46786436a39eb3b53343580f41b89" class="m-doc-self">constexprStaticFunction</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">constexpr</span></span></span>
            </h3>
            <p>Constexpr before static.</p>
<p>1.8.18 puts both <code>constexpr</code> and <code>static</code> into the return type so I have to remove them. WHY! HOW IS THAT USEFUL IN ANY WAY?!</p>
          </div></section>
          <section class="m-doc-details" id="a37fb9b85cc5a56110f12460a822112a9"><div>
            <h3>
              <span class="m-doc-wrap-bumper">static int Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a37fb9b85cc5a56110f12460a822112a9" class="m-doc-self">constevalStaticFunction</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">consteval</span></span></span>
            </h3>
            <p>Consteval before static.</p>
<p>Same as above, but for C++20&#x27;s consteval.</p>
          </div></section>
          <section class="m-doc-details" id="a178c5f6f19fa2ffb1fc7a346e2e877d9"><div>
            <h3>
              <span class="m-doc-wrap-bumper">static int Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a178c5f6f19fa2ffb1fc7a346e2e877d9" class="m-doc-self">staticConstexprFunction</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">constexpr</span></span></span>
            </h3>
            <p>Constexpr after static.</p>
<p>In this case, <code>static</code> is not in the return type. FFS.</p>
          </div></section>
          <section class="m-doc-details" id="a26b977ac73c54993504324aae7a08e08"><div>
            <h3>
              <span class="m-doc-wrap-bumper">static int Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a26b977ac73c54993504324aae7a08e08" class="m-doc-self">staticConstevalFunction</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">consteval</span></span></span>
            </h3>
            <p>Consteval after static.</p>
<p>Same as above, but for C++20&#x27;s consteval.</p>
          </div></section>
          <section class="m-doc-details" id="ad5953d17211071264b501747c67e6fdc"><div>
            <h3>
              <span class="m-doc-wrap-bumper"> Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#ad5953d17211071264b501747c67e6fdc" class="m-doc-self">Foo</a>(</span><span class="m-doc-wrap"><a href="structFoo.html" class="m-doc">Foo</a>&amp;&amp;) <span class="m-label m-info">defaulted</span> <span class="m-label m-success">noexcept</span></span></span>
            </h3>
            <p>Combined default and noexcept.</p>
<p>Details.</p>
          </div></section>
          <section class="m-doc-details" id="aa5e6af28b3d9578c4c1653ef8a7eb8d5"><div>
            <h3>
              <span class="m-doc-wrap-bumper"> Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#aa5e6af28b3d9578c4c1653ef8a7eb8d5" class="m-doc-self">Foo</a>(</span><span class="m-doc-wrap">const <a href="structFoo.html" class="m-doc">Foo</a>&amp;) <span class="m-label m-success">noexcept(…)</span></span></span>
            </h3>
            <p>Conditional noexcept.</p>
<p>Details.</p>
          </div></section>
          <section class="m-doc-details" id="ad9331e22010cb345be1d123831ecc8a0"><div>
            <h3>
              <span class="m-doc-wrap-bumper"><a href="structFoo.html" class="m-doc">Foo</a>&amp; Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#ad9331e22010cb345be1d123831ecc8a0" class="m-doc-self">operator=</a>(</span><span class="m-doc-wrap">const <a href="structFoo.html" class="m-doc">Foo</a>&amp;) <span class="m-label m-danger">deleted</span> <span class="m-label m-success">noexcept(…)</span></span></span>
            </h3>
            <p>Combined conditional noexcept and delete.</p>
<p>Details.</p>
          </div></section>
          <section class="m-doc-details" id="a67e9f6865d19c8e7734b182143d5e9b3"><div>
            <h3>
              <span class="m-doc-wrap-bumper">void Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a67e9f6865d19c8e7734b182143d5e9b3" class="m-doc-self">foo</a>(</span><span class="m-doc-wrap">) const <span class="m-label m-warning">pure virtual</span> <span class="m-label m-success">noexcept(…)</span></span></span>
            </h3>
            <p>Const, conditional noexcept and a pure virtual.</p>
<p>Details.</p>
          </div></section>
          <section class="m-doc-details" id="a6c32baeb1c9a472657fd3ee8c191aa07"><div>
            <h3>
              <span class="m-doc-wrap-bumper"><a href="structFoo.html" class="m-doc">Foo</a>&amp; Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#a6c32baeb1c9a472657fd3ee8c191aa07" class="m-doc-self">bar</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">constexpr</span> <span class="m-label m-success">noexcept</span></span></span>
            </h3>
            <p>Random type and constexpr together.</p>
<p>This is okay.</p>
          </div></section>
          <section class="m-doc-details" id="ac8cb68a3567b95476f034d3eb4ba1d66"><div>
            <h3>
              <span class="m-doc-wrap-bumper">decltype(auto) Foo::<wbr /></span><span class="m-doc-wrap"><span class="m-doc-wrap-bumper"><a href="#ac8cb68a3567b95476f034d3eb4ba1d66" class="m-doc-self">baz</a>(</span><span class="m-doc-wrap">) <span class="m-label m-primary">constexpr</span> <span class="m-label m-success">noexcept</span></span></span>
            </h3>
            <p>decltype(auto) and constexpr together</p>
<p>For some reason, due to decltype(auto), Doxygen swaps the order, causing the constexpr to be hard to detect. Don&#x27;t even ask how it handles trailing return types. It&#x27;s just HORRIBLE.</p>
          </div></section>
        </section>
      </div>
    </div>
  </div>
</article></main>
</body>
</html>