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">) -> 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">) -> 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">) -> 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">) -> 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>&&) <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>&) <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>&) -> <a href="structFoo.html" class="m-doc">Foo</a>& <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">) -> <a href="structFoo.html" class="m-doc">Foo</a>& <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">) -> 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'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'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>&&) <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>&) <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>& 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>&) <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>& 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't even ask how it handles trailing return types. It's just HORRIBLE.</p>
</div></section>
</section>
</div>
</div>
</div>
</article></main>
</body>
</html>
|