docs: "API Reference" support added
This commit is contained in:
1 parent
40dc07a42c
commit
1b4f451f90
32 files changed
+2090
No files matched your search
+74
@@ -0,0 +1,74 @@
|
||||
---
|
||||
hide:
|
||||
- navigation
|
||||
- toc
|
||||
---
|
||||
|
||||
<script src="../javascripts/jquery.min.js"></script>
|
||||
<script src="../javascripts/iframeResizer.min.js"></script>
|
||||
|
||||
<iframe id="apiIframe" style="width: 100%; border: none;"></iframe>
|
||||
|
||||
<script>
|
||||
// injects scripts to the iframe source code
|
||||
$('#apiIframe').on('load', function() {
|
||||
body = $(this).contents().find('body');
|
||||
body.append('<scr' + 'ipt src="../../javascripts/iframeResizer.contentWindow.min.js"></scr' + 'ipt>');
|
||||
body.append('<scr' + 'ipt>' +
|
||||
'var links = document.querySelectorAll("a");' +
|
||||
'for (var i = 0; i < links.length; i++) {' +
|
||||
' links[i].addEventListener("click", whichLinkWasClicked);' +
|
||||
'}' +
|
||||
'' +
|
||||
'function whichLinkWasClicked(evt) {' +
|
||||
' window.parentIFrame.sendMessage(evt.target.href);' +
|
||||
' evt.preventDefault();' +
|
||||
'}' +
|
||||
'</scr' + 'ipt>');
|
||||
});
|
||||
|
||||
// reloads the window with the content when a user navigates over the browser's history
|
||||
function locationHashChanged() {
|
||||
window.location.reload();
|
||||
}
|
||||
window.onhashchange = locationHashChanged;
|
||||
|
||||
apiIframe = document.getElementById('apiIframe');
|
||||
hash = window.location.hash;
|
||||
if (hash.length == 0) {
|
||||
// sets default hash for the API Reference
|
||||
hash = "#full";
|
||||
history.pushState(null, "", hash);
|
||||
}
|
||||
|
||||
// set the iframe source based on the hash in the URL
|
||||
if (hash.startsWith("#wg21.link/")) {
|
||||
apiIframe.src = "https://" + hash.slice(1);
|
||||
apiIframe.height = 900;
|
||||
}
|
||||
else
|
||||
apiIframe.src = "gen/" + hash.slice(1) + ".html";
|
||||
|
||||
// receives content height from the subpage displayed in the iframe
|
||||
// works only for the pages in the same domain as the main docs
|
||||
iFrameResize({
|
||||
scrolling: "yes",
|
||||
|
||||
// obtains the link URL clicked in the subpage
|
||||
onMessage: function(messageData) {
|
||||
url = messageData.message;
|
||||
if (url.startsWith("https://wg21.link/")) {
|
||||
hash = '#' + messageData.message.replace("https://", "");
|
||||
}
|
||||
else {
|
||||
pos = messageData.message.indexOf('#');
|
||||
if(pos == -1) {
|
||||
pos = messageData.message.lastIndexOf('/');
|
||||
}
|
||||
hash = '#' + messageData.message.slice(pos + 1);
|
||||
}
|
||||
history.pushState(null, "", hash);
|
||||
window.location.reload();
|
||||
}
|
||||
},'#apiIframe')
|
||||
</script>
|
||||
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,8 @@
|
||||
div.example { display: inline; color: #bb00bb; }
|
||||
div.note { display: inline; color: #bb00bb; }
|
||||
|
||||
div.exampleBody { display: inline; background-color: inherit; }
|
||||
div.noteBody { display: inline; background-color: inherit; }
|
||||
|
||||
a.example_link { text-decoration: none; color: inherit; }
|
||||
a.note_link { text-decoration: none; color: inherit; }
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[contents]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref' href='requirements#contents'>[requirements]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>3.2.1</a> Library contents <a class='abbr_ref'>[contents]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L47'>#</a></div><div id='1.sentence-1' class='sentence'>Whenever a name is qualified with <span class='texttt'>X<span class='operator'>​::​</span></span>, <span class='texttt'><span class='operator'>​::​</span>X<span class='operator'>​::​</span></span> is meant<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.example-1' class='example'>[ <a class='example_link' href='#1.example-1'><span class='textit'>Example</span></a><div class='exampleBody'><span class='textit'>:</span> <div id='1.sentence-2' class='sentence'>When <span class='texttt'>std<span class='operator'>​::​</span>Y</span> is mentioned, <span class='texttt'><span class='operator'>​::​</span>std<span class='operator'>​::​</span>Y</span> is meant<a class='hidden_link' href='#1.sentence-2'>.</a></div> — <i>end example</i></div> ]</div> </div></div></body></html>
|
||||
@@ -0,0 +1,8 @@
|
||||
div.example { display: inline; }
|
||||
div.note { display: inline; }
|
||||
|
||||
div.exampleBody { display: inline; }
|
||||
div.noteBody { display: inline; }
|
||||
|
||||
a.example_link { text-decoration: none; color: inherit; }
|
||||
a.note_link { text-decoration: none; color: inherit; }
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Figures</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1>List of Figures <a href='./#fig' class='abbr_ref'>[fig]</a></h1></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Footnotes</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1>List of Footnotes</h1></div></body></html>
|
||||
@@ -0,0 +1,476 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
|
||||
<head>
|
||||
<title>JEGP Library</title>
|
||||
<meta charset='UTF-8' />
|
||||
<link rel='stylesheet' type='text/css' href='14882.css' />
|
||||
<link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded' />
|
||||
<link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored' />
|
||||
<link rel='icon' href='icon.png' />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class='wrapper'>
|
||||
<div id='scope' class='section'>
|
||||
<h1><a class='secnum' style='min-width:73pt'>1</a> Scope <a class='abbr_ref' href='./#scope'>[scope]</a></h1>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='scope#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L4'>#</a>
|
||||
</div>
|
||||
<div id='scope-1.sentence-1' class='sentence'>This document describes the contents of the <a class='hidden_link'
|
||||
href='#def:JEGP_library' id='def:JEGP_library'><i>JEGP library</i></a><a class='hidden_link'
|
||||
href='#scope-1.sentence-1'>.</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='refs' class='section'>
|
||||
<h1><a class='secnum' style='min-width:73pt'>2</a> References <a class='abbr_ref' href='./#refs'>[refs]</a></h1>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='refs#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L9'>#</a>
|
||||
</div>
|
||||
<div id='refs-1.sentence-1' class='sentence'>The following documents are referred to in the text
|
||||
in such a way that some or all of their content
|
||||
constitutes requirements of this document<a class='hidden_link' href='#refs-1.sentence-1'>.</a></div>
|
||||
<ul class='itemize'>
|
||||
<li id='refs-1.1'>
|
||||
<div class='marginalizedparent' style='left:-7em'><a class='marginalized' href='#refs-1.1'>(1.1)</a></div>
|
||||
<div id='refs-1.1.sentence-1' class='sentence'>ISO/IEC 14882:2020, <span class='textit'>Programming
|
||||
Languages — C++</span></div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='refs#2'>2</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L18'>#</a>
|
||||
</div>
|
||||
<div id='refs-2.sentence-1' class='sentence'>ISO/IEC 14882 is herein called the <a class='hidden_link'
|
||||
href='#def:C++_Standard' id='def:C++_Standard'><i>C++ Standard</i></a><a class='hidden_link'
|
||||
href='#refs-2.sentence-1'>.</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='intro' class='section'>
|
||||
<h1><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a>
|
||||
</h1>
|
||||
<div id='intro.general' class='section'>
|
||||
<h2><a class='secnum' style='min-width:88pt'>3.1</a> General <a class='abbr_ref'
|
||||
href='intro.general'>[intro.general]</a></h2>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='intro.general#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L25'>#</a>
|
||||
</div>
|
||||
<div id='intro.general-1.sentence-1' class='sentence'>The library specification subsumes the C++ Standard's <a
|
||||
href="https://wg21.link/library">[library]</a>,
|
||||
assumingly amended to the context of this library<a class='hidden_link'
|
||||
href='#intro.general-1.sentence-1'>.</a></div>
|
||||
<div id='intro.general-1.example-1' class='example'>[ <a class='example_link'
|
||||
href='#intro.general-1.example-1'><span class='textit'>Example</span></a>
|
||||
<div class='exampleBody'><span class='textit'>:</span>
|
||||
<ul class='itemize'>
|
||||
<li>
|
||||
<div id='intro.general-1.sentence-1' class='sentence'>Per C++ Standard's <a
|
||||
href="https://wg21.link/namespace.future">[namespace.future]</a>, <span class='texttt'><span
|
||||
class='operator'>​::​</span>jegp2</span> is reserved<a class='hidden_link'
|
||||
href='#intro.general-1.sentence-1'>.</a></div>
|
||||
</li>
|
||||
<li>
|
||||
<div id='intro.general-1.sentence-1' class='sentence'>Per C++ Standard's <a
|
||||
href="https://wg21.link/contents">[contents]</a>#3, a name <span class='texttt'>x</span> means
|
||||
<span class='texttt'><span class='operator'>​::​</span>jegp<span
|
||||
class='operator'>​::​</span>x</span><a class='hidden_link'
|
||||
href='#intro.general-1.sentence-1'>.</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul> — <i>end example</i>
|
||||
</div> ]
|
||||
</div>
|
||||
<div id='intro.general-1.sentence-2' class='sentence'>
|
||||
The following subclauses describe additions to it<a class='hidden_link'
|
||||
href='#intro.general-1.sentence-2'>.</a></div>
|
||||
<div class='numberedTable' id='tab:library.categories'>Table <a href='#tab:library.categories'>1</a>: Library
|
||||
categories   [tab:library.categories]<br>
|
||||
<table>
|
||||
<tr class='rowsep'>
|
||||
<td class='left'>
|
||||
<div id='intro.general-1.sentence-3' class='sentence'><b>Clause</b></div>
|
||||
</td>
|
||||
<td class='left'>
|
||||
<div id='intro.general-1.sentence-4' class='sentence'><b>Category</b></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='capsep'>
|
||||
<td class='left'>
|
||||
<div id='intro.general-1.sentence-5' class='sentence'><a href='#utilities'>[utilities]</a></div>
|
||||
</td>
|
||||
<td class='left'>
|
||||
<div id='intro.general-1.sentence-6' class='sentence'>General utilities library</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='requirements' class='section'>
|
||||
<h2><a class='secnum' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref'
|
||||
href='requirements'>[requirements]</a></h2>
|
||||
<div id='contents' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>3.2.1</a> Library contents <a class='abbr_ref'
|
||||
href='contents'>[contents]</a></h3>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='contents#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L47'>#</a>
|
||||
</div>
|
||||
<div id='contents-1.sentence-1' class='sentence'>Whenever a name is qualified with <span
|
||||
class='texttt'>X<span class='operator'>​::​</span></span>, <span class='texttt'><span
|
||||
class='operator'>​::​</span>X<span class='operator'>​::​</span></span> is
|
||||
meant<a class='hidden_link' href='#contents-1.sentence-1'>.</a></div>
|
||||
<div id='contents-1.example-1' class='example'>[ <a class='example_link'
|
||||
href='#contents-1.example-1'><span class='textit'>Example</span></a>
|
||||
<div class='exampleBody'><span class='textit'>:</span>
|
||||
<div id='contents-1.sentence-2' class='sentence'>When <span class='texttt'>std<span
|
||||
class='operator'>​::​</span>Y</span> is mentioned, <span class='texttt'><span
|
||||
class='operator'>​::​</span>std<span
|
||||
class='operator'>​::​</span>Y</span> is meant<a class='hidden_link'
|
||||
href='#contents-1.sentence-2'>.</a></div> — <i>end example</i>
|
||||
</div> ]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='reserved.names' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>3.2.2</a> Reserved names <a class='abbr_ref'
|
||||
href='reserved.names'>[reserved.names]</a></h3>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='reserved.names#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L55'>#</a>
|
||||
</div>
|
||||
<div id='reserved.names-1.sentence-1' class='sentence'>The JEGP library reserves macro names starting with
|
||||
<span class='texttt'>JEGP_­</span><a class='hidden_link' href='#reserved.names-1.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='utilities' class='section'>
|
||||
<h1><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref'
|
||||
href='./#utilities'>[utilities]</a></h1>
|
||||
<div id='utilities.general' class='section'>
|
||||
<h2><a class='secnum' style='min-width:88pt'>4.1</a> General <a class='abbr_ref'
|
||||
href='utilities.general'>[utilities.general]</a></h2>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='utilities.general#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L6'>#</a>
|
||||
</div>
|
||||
<div id='utilities.general-1.sentence-1' class='sentence'>This clause describes generally useful utilities<a
|
||||
class='hidden_link' href='#utilities.general-1.sentence-1'>.</a></div>
|
||||
<div id='utilities.general-1.sentence-2' class='sentence'>These utilities are summarized in Table <a
|
||||
href='#tab:utilities.summary'>2</a><a class='hidden_link' href='#utilities.general-1.sentence-2'>.</a>
|
||||
</div>
|
||||
<div class='numberedTable' id='tab:utilities.summary'>Table <a href='#tab:utilities.summary'>2</a>: General
|
||||
utilities library summary   [tab:utilities.summary]<br>
|
||||
<table>
|
||||
<tr class='rowsep'>
|
||||
<td class='empty left'></td>
|
||||
<td class='left'>
|
||||
<div id='utilities.general-1.sentence-3' class='sentence'><b>Subclause</b></div>
|
||||
</td>
|
||||
<td class='left'>
|
||||
<div id='utilities.general-1.sentence-4' class='sentence'><b>Header</b></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class='capsep'>
|
||||
<td class='left'>
|
||||
<div id='utilities.general-1.sentence-5' class='sentence'><a href='#utility'>[utility]</a></div>
|
||||
</td>
|
||||
<td class='left'>
|
||||
<div id='utilities.general-1.sentence-6' class='sentence'>Utility components</div>
|
||||
</td>
|
||||
<td class='left'>
|
||||
<div id='utilities.general-1.sentence-7' class='sentence'><span class='texttt'><span
|
||||
class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span
|
||||
class='operator'>.</span>hpp<span class='anglebracket'>></span></span></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='utility' class='section'>
|
||||
<h2><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref'
|
||||
href='utility'>[utility]</a></h2>
|
||||
<div id='utility.syn' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>4.2.1</a> Header <span
|
||||
class='texttt'><jegp/utility.hpp></span> synopsis <a class='abbr_ref'
|
||||
href='utility.syn'>[utility.syn]</a></h3>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='utility.syn#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L18'>#</a>
|
||||
</div>
|
||||
<div id='utility.syn-1.sentence-1' class='sentence'>The header <span class='indexparent'><a class='index'
|
||||
id=':<jegp/utility.hpp>'></a></span><span class='texttt'><span
|
||||
class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span
|
||||
class='operator'>.</span>hpp<span class='anglebracket'>></span></span>
|
||||
contains some basic constructs<a class='hidden_link' href='#utility.syn-1.sentence-1'>.</a></div><span
|
||||
class='indexparent'><a class='index' id=':<jegp/utility.hpp>_'></a></span>
|
||||
<pre class='codeblock'>
|
||||
<span class='keyword'>namespace</span> jegp
|
||||
<span class='curlybracket'>{</span>
|
||||
<span class='comment'>// <a href='#utility.underlying'>[utility.underlying]</a>, <span class='tcode_in_codeblock'>underlying</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#static.downcast'>[static.downcast]</a>, <span class='tcode_in_codeblock'>static_­downcast</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#hash.combine'>[hash.combine]</a>, <span class='tcode_in_codeblock'>hash_­combine</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
|
||||
<span class='curlybracket'>}</span> <span class='comment'>// namespace jegp</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
<div id='utility.underlying' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>4.2.2</a> <span class='texttt'>underlying</span> <a
|
||||
class='abbr_ref' href='utility.underlying'>[utility.underlying]</a></h3><span class='indexparent'><a
|
||||
class='index' id='lib:underlying'></a></span>
|
||||
<div class='itemdecl' id='utility.underlying-itemdecl:1'>
|
||||
<div class='marginalizedparent'><a class='itemDeclLink' href='#utility.underlying-itemdecl:1'>🔗</a></div>
|
||||
<code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code>
|
||||
</div>
|
||||
<div class='itemdescr'></div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='utility.underlying#1'>1</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L50'>#</a>
|
||||
</div>
|
||||
<div id='utility.underlying-1.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>is_­enum_­v<span
|
||||
class='anglebracket'><</span>Enum<span class='anglebracket'>></span></span> is <span
|
||||
class='texttt'><span class='literal'>true</span></span><a class='hidden_link'
|
||||
href='#utility.underlying-1.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='utility.underlying#2'>2</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L54'>#</a>
|
||||
</div>
|
||||
<div id='utility.underlying-2.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span
|
||||
class='anglebracket'><</span>std<span
|
||||
class='operator'>​::​</span>underlying_­type_­t<span
|
||||
class='anglebracket'><</span>Enum<span class='anglebracket'>></span><span
|
||||
class='anglebracket'>></span><span class='parenthesis'>(</span>e<span
|
||||
class='parenthesis'>)</span></span><a class='hidden_link'
|
||||
href='#utility.underlying-2.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='static.downcast' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>4.2.3</a> <span class='texttt'>static_­downcast</span> <a
|
||||
class='abbr_ref' href='static.downcast'>[static.downcast]</a></h3>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='static.downcast#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L61'>#</a>
|
||||
</div>
|
||||
<div id='static.downcast-1.sentence-1' class='sentence'>A <span class='texttt'><span
|
||||
class='keyword'>static_­cast</span></span> that performs a downcast<a class='hidden_link'
|
||||
href='#static.downcast-1.sentence-1'>.</a></div> <span class='indexparent'><a class='index'
|
||||
id='lib:static_downcast'></a></span>
|
||||
</div>
|
||||
<div class='itemdecl' id='static.downcast-itemdecl:1'>
|
||||
<div class='marginalizedparent'><a class='itemDeclLink' href='#static.downcast-itemdecl:1'>🔗</a></div><code
|
||||
class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code>
|
||||
</div>
|
||||
<div class='itemdescr'></div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='static.downcast#2'>2</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L71'>#</a>
|
||||
</div>
|
||||
<div id='static.downcast-2.sentence-1' class='sentence'>Let <span class='texttt'><span
|
||||
class='textit'>derived-ref</span></span> be
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span
|
||||
class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span><span
|
||||
class='parenthesis'>(</span>std<span class='operator'>​::​</span>forward<span
|
||||
class='anglebracket'><</span>Base<span class='anglebracket'>></span><span
|
||||
class='parenthesis'>(</span>base<span class='parenthesis'>)</span><span
|
||||
class='parenthesis'>)</span></span><a class='hidden_link' href='#static.downcast-2.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='static.downcast#3'>3</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L75'>#</a>
|
||||
</div>
|
||||
<div id='static.downcast-3.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'>
|
||||
<li id='static.downcast-3.1'>
|
||||
<div class='marginalizedparent' style='left:-10em'><a class='marginalized'
|
||||
href='#static.downcast-3.1'>(3.1)</a></div><span class='texttt'>DerivedRef</span> is a reference
|
||||
type,
|
||||
</li>
|
||||
<li id='static.downcast-3.2'>
|
||||
<div class='marginalizedparent' style='left:-10em'><a class='marginalized'
|
||||
href='#static.downcast-3.2'>(3.2)</a></div><span class='texttt'>std<span
|
||||
class='operator'>​::​</span>remove_­cvref_­t<span
|
||||
class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span></span> is
|
||||
derived from
|
||||
<span class='texttt'>std<span
|
||||
class='operator'>​::​</span>remove_­cvref_­t<span
|
||||
class='anglebracket'><</span>Base<span class='anglebracket'>></span></span>, and
|
||||
</li>
|
||||
<li id='static.downcast-3.3'>
|
||||
<div class='marginalizedparent' style='left:-10em'><a class='marginalized'
|
||||
href='#static.downcast-3.3'>(3.3)</a></div><span class='texttt'><span
|
||||
class='textit'>derived-ref</span></span> is well-formed<a class='hidden_link'
|
||||
href='#static.downcast-3.sentence-1'>.</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='static.downcast#4'>4</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L87'>#</a>
|
||||
</div>
|
||||
<div id='static.downcast-4.sentence-1' class='sentence'><span class='textit'>Preconditions:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span> has well-defined behavior<a
|
||||
class='hidden_link' href='#static.downcast-4.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='static.downcast#5'>5</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L91'>#</a>
|
||||
</div>
|
||||
<div id='static.downcast-5.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span><a class='hidden_link'
|
||||
href='#static.downcast-5.sentence-1'>.</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id='hash.combine' class='section'>
|
||||
<h3><a class='secnum' style='min-width:103pt'>4.2.4</a> <span class='texttt'>hash_­combine</span> <a
|
||||
class='abbr_ref' href='hash.combine'>[hash.combine]</a></h3>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='hash.combine#1'>1</a></div>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L98'>#</a>
|
||||
</div>
|
||||
<div id='hash.combine-1.sentence-1' class='sentence'>Insipred by <span class='texttt'>Boost<span
|
||||
class='operator'>.</span>ContainerHash</span><a class='hidden_link'
|
||||
href='#hash.combine-1.sentence-1'>.</a></div>
|
||||
<div id='hash.combine-1.sentence-2' class='sentence'>Useful in the specializations of <span
|
||||
class='texttt'>std<span class='operator'>​::​</span>hash</span>
|
||||
whose <span class='texttt'>Key</span>'s salient parts consist of two or more objects<a class='hidden_link'
|
||||
href='#hash.combine-1.sentence-2'>.</a></div> <span class='indexparent'><a class='index'
|
||||
id='lib:hash_combine'></a></span>
|
||||
</div>
|
||||
<div class='itemdecl' id='hash.combine-itemdecl:1'>
|
||||
<div class='marginalizedparent'><a class='itemDeclLink' href='#hash.combine-itemdecl:1'>🔗</a></div><code
|
||||
class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
</code>
|
||||
</div>
|
||||
<div class='itemdescr'></div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='hash.combine#2'>2</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L110'>#</a>
|
||||
</div>
|
||||
<div id='hash.combine-2.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'>
|
||||
<li id='hash.combine-2.1'>
|
||||
<div class='marginalizedparent' style='left:-10em'><a class='marginalized'
|
||||
href='#hash.combine-2.1'>(2.1)</a></div><span class="mjx-chtml"><span class="mjx-math"><span
|
||||
class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span
|
||||
class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R"
|
||||
style="padding-top: 0.519em; padding-bottom: 0.519em;"><span
|
||||
class='keyword'>sizeof</span><span class='operator'>.</span><span
|
||||
class='operator'>.</span><span class='operator'>.</span><span
|
||||
class='parenthesis'>(</span>Args<span
|
||||
class='parenthesis'>)</span></span></span></span></span><span
|
||||
class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R"
|
||||
style="padding-top: 0.372em; padding-bottom: 0.446em;">≥</span></span><span
|
||||
class="mjx-texatom MJXc-space3"><span class="mjx-mrow"></span></span><span
|
||||
class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R"
|
||||
style="padding-top: 0.372em; padding-bottom: 0.372em;">2</span></span></span></span></span>
|
||||
and
|
||||
</li>
|
||||
<li id='hash.combine-2.2'>
|
||||
<div class='marginalizedparent' style='left:-10em'><a class='marginalized'
|
||||
href='#hash.combine-2.2'>(2.2)</a></div><span class='texttt'>std<span
|
||||
class='operator'>​::​</span>hash<span class='anglebracket'><</span>T<span
|
||||
class='anglebracket'>></span></span> is enabled (C++ Standard's <a
|
||||
href="https://wg21.link/unord.hash">[unord.hash]</a>)
|
||||
for all <span class='texttt'>T</span> in <span class='texttt'>Args</span><a class='hidden_link'
|
||||
href='#hash.combine-2.sentence-1'>.</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='hash.combine#3'>3</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L120'>#</a>
|
||||
</div>
|
||||
<div id='hash.combine-3.sentence-1' class='sentence'><span class='textit'>Effects:</span>
|
||||
Equivalent to:
|
||||
<pre class='codeblock'>
|
||||
std<span class='operator'>::</span>size_t seed<span class='curlybracket'>{</span><span class='literal'>0</span><span class='curlybracket'>}</span>;
|
||||
<span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span>, <span class='parenthesis'>(</span>seed <span class='operator'>^</span><span class='operator'>=</span> std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'><</span><span class='anglebracket'><</span> <span class='literal'>6</span><span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='literal'>2</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='para'>
|
||||
<div class='marginalizedparent'><a class='marginalized' href='hash.combine#4'>4</a></div>
|
||||
<div class='itemdescr'>
|
||||
<div class='sourceLinkParent'><a class='sourceLink'
|
||||
href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L128'>#</a>
|
||||
</div>
|
||||
<div id='hash.combine-4.sentence-1' class='sentence'><span class='textit'>Remarks:</span>
|
||||
The expression inside <span class='texttt'><span class='keyword'>noexcept</span></span> is equivalent to
|
||||
<pre class='codeblock'>
|
||||
<span class='parenthesis'>(</span><span class='keyword'>noexcept</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Index</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 >Index</h1><div id=':C++_Standard'><div class='indexitems'>C++ Standard, <a href='refs#def:C++_Standard'>[refs]</a></div></div><div id=':JEGP_library'><div class='indexitems'>JEGP library, <a href='scope#def:JEGP_library'>[scope]</a></div></div><div id=':<jegp/utility.hpp>'><div class='indexitems'><span class='texttt'><jegp/utility.hpp></span>, <a href='utility.syn#:%3cjegp/utility.hpp%3e'>[utility.syn]</a></div></div></div></body></html>
|
||||
@@ -0,0 +1,15 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[hash.combine]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility#hash.combine'>[utility]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>4.2.4</a> <span class='texttt'>hash_­combine</span> <a class='abbr_ref'>[hash.combine]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L98'>#</a></div><div id='1.sentence-1' class='sentence'>Insipred by <span class='texttt'>Boost<span class='operator'>.</span>ContainerHash</span><a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>Useful in the specializations of <span class='texttt'>std<span class='operator'>​::​</span>hash</span>
|
||||
whose <span class='texttt'>Key</span>'s salient parts consist of two or more objects<a class='hidden_link' href='#1.sentence-2'>.</a></div> <span class='indexparent'><a class='index' id='lib:hash_combine'></a></span></div><div class='itemdecl' id='itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L110'>#</a></div><div id='2.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='2.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#2.1'>(2.1)</a></div><span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.519em; padding-bottom: 0.519em;"><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Args<span class='parenthesis'>)</span></span></span></span></span><span class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.446em;">≥</span></span><span class="mjx-texatom MJXc-space3"><span class="mjx-mrow"></span></span><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">2</span></span></span></span></span> and</li><li id='2.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#2.2'>(2.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>hash<span class='anglebracket'><</span>T<span class='anglebracket'>></span></span> is enabled (C++ Standard's <a href="https://wg21.link/unord.hash">[unord.hash]</a>)
|
||||
for all <span class='texttt'>T</span> in <span class='texttt'>Args</span><a class='hidden_link' href='#2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L120'>#</a></div><div id='3.sentence-1' class='sentence'><span class='textit'>Effects:</span>
|
||||
Equivalent to:
|
||||
<pre class='codeblock'>
|
||||
std<span class='operator'>::</span>size_t seed<span class='curlybracket'>{</span><span class='literal'>0</span><span class='curlybracket'>}</span>;
|
||||
<span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span>, <span class='parenthesis'>(</span>seed <span class='operator'>^</span><span class='operator'>=</span> std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'><</span><span class='anglebracket'><</span> <span class='literal'>6</span><span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='literal'>2</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
||||
</pre></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L128'>#</a></div><div id='4.sentence-1' class='sentence'><span class='textit'>Remarks:</span>
|
||||
The expression inside <span class='texttt'><span class='keyword'>noexcept</span></span> is equivalent to
|
||||
<pre class='codeblock'>
|
||||
<span class='parenthesis'>(</span><span class='keyword'>noexcept</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>
|
||||
</pre></div></div></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Index of library headers</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 >Index of library headers</h1><div id=':<jegp/utility.hpp>'><div class='indexitems'><span class='texttt'><jegp/utility.hpp></span>, <a href='utility.syn#:%3cjegp/utility.hpp%3e'>[utility.syn]</a></div></div></div></body></html>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 132 B |
@@ -0,0 +1,9 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Contents</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/><meta name='description' content='Browser-friendly rendering of the JEGP library'><style>h1 { margin: 0.2em 5pt 0.2em 5pt; line-height: 1.35; }
|
||||
h2 { margin: 0.2em 5pt 0.2em 5pt; border-bottom: 1px dashed rgba(0, 0, 0, 0.2); line-height: 1.35; }
|
||||
h3 { margin: 0.2em 5pt 0.2em 5pt; border-bottom: 1px dashed rgba(0, 0, 0, 0.2); line-height: 1.35; }
|
||||
h4 { margin: 0.1em 5pt 0.1em 5pt; border-bottom: 1px dashed rgba(0, 0, 0, 0.2); line-height: 1.35; }
|
||||
:target h2 { border-bottom: none; }
|
||||
.tocHeader { text-align: center; }
|
||||
div.tocChapter { display: none; }
|
||||
:target > div.tocChapter { display: block; }
|
||||
</style></head><body><div class='wrapper'><h1 style='text-align:center; hyphens:none'>JEGP Library</h1><br><div class='tocHeader'>(Generated on 2020-05-20 from the <a href='https://github.com/johelegp/jegp/commit/4dfbe8f5446ba1f53439a36ce12119fe285268c9'>LaTeX sources</a> by <a href='https://github.com/johelegp/cxxdraft-htmlgen/tree/jegp'>cxxdraft-htmlgen</a>.)</div><br><h1>Contents</h1><div id='scope'><h2 ><a class='secnum' style='min-width:73pt'>1</a> Scope <a class='folded_abbr_ref' href='scope'>[scope]</a><a class='unfolded_abbr_ref' href='scope'>[scope]</a></h2><div class='tocChapter'></div></div><div id='refs'><h2 ><a class='secnum' style='min-width:73pt'>2</a> References <a class='folded_abbr_ref' href='refs'>[refs]</a><a class='unfolded_abbr_ref' href='refs'>[refs]</a></h2><div class='tocChapter'></div></div><div id='intro'><h2 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='folded_abbr_ref' href='#intro'>[intro]</a><a class='unfolded_abbr_ref' href='intro'>[intro]</a></h2><div class='tocChapter'><div id='intro.general'><h3 ><a class='secnum' style='min-width:88pt'>3.1</a> General <a class='abbr_ref' href='intro.general'>[intro.general]</a></h3></div><div id='requirements'><h3 ><a class='secnum' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref' href='requirements'>[requirements]</a></h3><div id='contents'><h4 ><a class='secnum' style='min-width:103pt'>3.2.1</a> Library contents <a class='abbr_ref' href='contents'>[contents]</a></h4></div><div id='reserved.names'><h4 ><a class='secnum' style='min-width:103pt'>3.2.2</a> Reserved names <a class='abbr_ref' href='reserved.names'>[reserved.names]</a></h4></div></div></div></div><div id='utilities'><h2 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='folded_abbr_ref' href='#utilities'>[utilities]</a><a class='unfolded_abbr_ref' href='utilities'>[utilities]</a></h2><div class='tocChapter'><div id='utilities.general'><h3 ><a class='secnum' style='min-width:88pt'>4.1</a> General <a class='abbr_ref' href='utilities.general'>[utilities.general]</a></h3></div><div id='utility'><h3 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility'>[utility]</a></h3><div id='utility.syn'><h4 ><a class='secnum' style='min-width:103pt'>4.2.1</a> Header <span class='texttt'><jegp/utility.hpp></span> synopsis <a class='abbr_ref' href='utility.syn'>[utility.syn]</a></h4></div><div id='utility.underlying'><h4 ><a class='secnum' style='min-width:103pt'>4.2.2</a> <span class='texttt'>underlying</span> <a class='abbr_ref' href='utility.underlying'>[utility.underlying]</a></h4></div><div id='static.downcast'><h4 ><a class='secnum' style='min-width:103pt'>4.2.3</a> <span class='texttt'>static_­downcast</span> <a class='abbr_ref' href='static.downcast'>[static.downcast]</a></h4></div><div id='hash.combine'><h4 ><a class='secnum' style='min-width:103pt'>4.2.4</a> <span class='texttt'>hash_­combine</span> <a class='abbr_ref' href='hash.combine'>[hash.combine]</a></h4></div></div></div></div><h2 ><a href='generalindex'>Index</a></h2><h2 ><a href='headerindex'>Index of library headers</a></h2><h2 ><a href='libraryindex'>Index of library names</a></h2></div></body></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[intro.general]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>3.1</a> General <a class='abbr_ref'>[intro.general]</a></h2><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L25'>#</a></div><div id='1.sentence-1' class='sentence'>The library specification subsumes the C++ Standard's <a href="https://wg21.link/library">[library]</a>,
|
||||
assumingly amended to the context of this library<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.example-1' class='example'>[ <a class='example_link' href='#1.example-1'><span class='textit'>Example</span></a><div class='exampleBody'><span class='textit'>:</span> <ul class='itemize'><li ><div id='1.sentence-1' class='sentence'>Per C++ Standard's <a href="https://wg21.link/namespace.future">[namespace.future]</a>, <span class='texttt'><span class='operator'>​::​</span>jegp2</span> is reserved<a class='hidden_link' href='#1.sentence-1'>.</a></div></li><li ><div id='1.sentence-1' class='sentence'>Per C++ Standard's <a href="https://wg21.link/contents">[contents]</a>#3, a name <span class='texttt'>x</span> means <span class='texttt'><span class='operator'>​::​</span>jegp<span class='operator'>​::​</span>x</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></li></ul> — <i>end example</i></div> ]</div> <div id='1.sentence-2' class='sentence'>
|
||||
The following subclauses describe additions to it<a class='hidden_link' href='#1.sentence-2'>.</a></div><div class='numberedTable' id='tab:library.categories'>Table <a href='#tab:library.categories'>1</a>: Library categories   [tab:library.categories]<br><table ><tr class='rowsep'><td class='left'><div id='1.sentence-3' class='sentence'><b>Clause</b></div></td><td class='left'><div id='1.sentence-4' class='sentence'><b>Category</b></div></td></tr><tr class='capsep'><td class='left'><div id='1.sentence-5' class='sentence'><a href='utilities'>[utilities]</a></div></td><td class='left'><div id='1.sentence-6' class='sentence'>General utilities library</div></td></tr></table></div></div></div></body></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[intro]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a></h1><div id='general' class='section'><h2 ><a class='secnum' href='#general' style='min-width:88pt'>3.1</a> General <a class='abbr_ref' href='intro.general'>[intro.general]</a></h2><div class='para' id='general-1'><div class='marginalizedparent'><a class='marginalized' href='#general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L25'>#</a></div><div id='general-1.sentence-1' class='sentence'>The library specification subsumes the C++ Standard's <a href="https://wg21.link/library">[library]</a>,
|
||||
assumingly amended to the context of this library<a class='hidden_link' href='#general-1.sentence-1'>.</a></div> <div id='general-1.example-1' class='example'>[ <a class='example_link' href='#general-1.example-1'><span class='textit'>Example</span></a><div class='exampleBody'><span class='textit'>:</span> <ul class='itemize'><li ><div id='general-1.sentence-1' class='sentence'>Per C++ Standard's <a href="https://wg21.link/namespace.future">[namespace.future]</a>, <span class='texttt'><span class='operator'>​::​</span>jegp2</span> is reserved<a class='hidden_link' href='#general-1.sentence-1'>.</a></div></li><li ><div id='general-1.sentence-1' class='sentence'>Per C++ Standard's <a href="https://wg21.link/contents">[contents]</a>#3, a name <span class='texttt'>x</span> means <span class='texttt'><span class='operator'>​::​</span>jegp<span class='operator'>​::​</span>x</span><a class='hidden_link' href='#general-1.sentence-1'>.</a></div></li></ul> — <i>end example</i></div> ]</div> <div id='general-1.sentence-2' class='sentence'>
|
||||
The following subclauses describe additions to it<a class='hidden_link' href='#general-1.sentence-2'>.</a></div><div class='numberedTable' id='tab:library.categories'>Table <a href='#tab:library.categories'>1</a>: Library categories   [tab:library.categories]<br><table ><tr class='rowsep'><td class='left'><div id='general-1.sentence-3' class='sentence'><b>Clause</b></div></td><td class='left'><div id='general-1.sentence-4' class='sentence'><b>Category</b></div></td></tr><tr class='capsep'><td class='left'><div id='general-1.sentence-5' class='sentence'><a href='utilities'>[utilities]</a></div></td><td class='left'><div id='general-1.sentence-6' class='sentence'>General utilities library</div></td></tr></table></div></div></div><div id='requirements' class='section'><h2 ><a class='secnum' href='#requirements' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref' href='requirements'>[requirements]</a></h2><div id='contents' class='section'><h3 ><a class='secnum' href='#contents' style='min-width:103pt'>3.2.1</a> Library contents <a class='abbr_ref' href='contents'>[contents]</a></h3><div class='para' id='contents-1'><div class='marginalizedparent'><a class='marginalized' href='#contents-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L47'>#</a></div><div id='contents-1.sentence-1' class='sentence'>Whenever a name is qualified with <span class='texttt'>X<span class='operator'>​::​</span></span>, <span class='texttt'><span class='operator'>​::​</span>X<span class='operator'>​::​</span></span> is meant<a class='hidden_link' href='#contents-1.sentence-1'>.</a></div> <div id='contents-1.example-1' class='example'>[ <a class='example_link' href='#contents-1.example-1'><span class='textit'>Example</span></a><div class='exampleBody'><span class='textit'>:</span> <div id='contents-1.sentence-2' class='sentence'>When <span class='texttt'>std<span class='operator'>​::​</span>Y</span> is mentioned, <span class='texttt'><span class='operator'>​::​</span>std<span class='operator'>​::​</span>Y</span> is meant<a class='hidden_link' href='#contents-1.sentence-2'>.</a></div> — <i>end example</i></div> ]</div> </div></div><div id='reserved.names' class='section'><h3 ><a class='secnum' href='#reserved.names' style='min-width:103pt'>3.2.2</a> Reserved names <a class='abbr_ref' href='reserved.names'>[reserved.names]</a></h3><div class='para' id='reserved.names-1'><div class='marginalizedparent'><a class='marginalized' href='#reserved.names-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L55'>#</a></div><div id='reserved.names-1.sentence-1' class='sentence'>The JEGP library reserves macro names starting with <span class='texttt'>JEGP_­</span><a class='hidden_link' href='#reserved.names-1.sentence-1'>.</a></div></div></div></div></div></body></html>
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Index of library names</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 >Index of library names</h1><div id=':hash_combine'><div class='indexitems'><span class='texttt'>hash_­combine</span>, <a href='hash.combine#lib:hash_combine'>[hash.combine]</a></div></div><div id=':static_downcast'><div class='indexitems'><span class='texttt'>static_­downcast</span>, <a href='static.downcast#lib:static_downcast'>[static.downcast]</a></div></div><div id=':underlying'><div class='indexitems'><span class='texttt'>underlying</span>, <a href='utility.underlying#lib:underlying'>[utility.underlying]</a></div></div></div></body></html>
|
||||
@@ -0,0 +1,3 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[refs]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>2</a> References <a class='abbr_ref' href='./#refs'>[refs]</a></h1><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L9'>#</a></div><div id='1.sentence-1' class='sentence'>The following documents are referred to in the text
|
||||
in such a way that some or all of their content
|
||||
constitutes requirements of this document<a class='hidden_link' href='#1.sentence-1'>.</a></div><ul class='itemize'><li id='1.1'><div class='marginalizedparent' style='left:-7em'><a class='marginalized' href='#1.1'>(1.1)</a></div><div id='1.1.sentence-1' class='sentence'>ISO/IEC 14882:2020, <span class='textit'>Programming Languages — C++</span></div></li></ul></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L18'>#</a></div><div id='2.sentence-1' class='sentence'>ISO/IEC 14882 is herein called the <a class='hidden_link' href='#def:C++_Standard' id='def:C++_Standard'><i >C++ Standard</i></a><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[requirements]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref'>[requirements]</a></h2><div id='contents' class='section'><h3 ><a class='secnum' href='#contents' style='min-width:103pt'>3.2.1</a> Library contents <a class='abbr_ref' href='contents'>[contents]</a></h3><div class='para' id='contents-1'><div class='marginalizedparent'><a class='marginalized' href='#contents-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L47'>#</a></div><div id='contents-1.sentence-1' class='sentence'>Whenever a name is qualified with <span class='texttt'>X<span class='operator'>​::​</span></span>, <span class='texttt'><span class='operator'>​::​</span>X<span class='operator'>​::​</span></span> is meant<a class='hidden_link' href='#contents-1.sentence-1'>.</a></div> <div id='contents-1.example-1' class='example'>[ <a class='example_link' href='#contents-1.example-1'><span class='textit'>Example</span></a><div class='exampleBody'><span class='textit'>:</span> <div id='contents-1.sentence-2' class='sentence'>When <span class='texttt'>std<span class='operator'>​::​</span>Y</span> is mentioned, <span class='texttt'><span class='operator'>​::​</span>std<span class='operator'>​::​</span>Y</span> is meant<a class='hidden_link' href='#contents-1.sentence-2'>.</a></div> — <i>end example</i></div> ]</div> </div></div><div id='reserved.names' class='section'><h3 ><a class='secnum' href='#reserved.names' style='min-width:103pt'>3.2.2</a> Reserved names <a class='abbr_ref' href='reserved.names'>[reserved.names]</a></h3><div class='para' id='reserved.names-1'><div class='marginalizedparent'><a class='marginalized' href='#reserved.names-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L55'>#</a></div><div id='reserved.names-1.sentence-1' class='sentence'>The JEGP library reserves macro names starting with <span class='texttt'>JEGP_­</span><a class='hidden_link' href='#reserved.names-1.sentence-1'>.</a></div></div></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[reserved.names]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>3</a> Introduction <a class='abbr_ref' href='./#intro'>[intro]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>3.2</a> Library-wide requirements <a class='abbr_ref' href='requirements#reserved.names'>[requirements]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>3.2.2</a> Reserved names <a class='abbr_ref'>[reserved.names]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L55'>#</a></div><div id='1.sentence-1' class='sentence'>The JEGP library reserves macro names starting with <span class='texttt'>JEGP_­</span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[scope]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>1</a> Scope <a class='abbr_ref' href='./#scope'>[scope]</a></h1><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/intro.tex#L4'>#</a></div><div id='1.sentence-1' class='sentence'>This document describes the contents of the <a class='hidden_link' href='#def:JEGP_library' id='def:JEGP_library'><i >JEGP library</i></a><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div></body></html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[static.downcast]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility#static.downcast'>[utility]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>4.2.3</a> <span class='texttt'>static_­downcast</span> <a class='abbr_ref'>[static.downcast]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L61'>#</a></div><div id='1.sentence-1' class='sentence'>A <span class='texttt'><span class='keyword'>static_­cast</span></span> that performs a downcast<a class='hidden_link' href='#1.sentence-1'>.</a></div> <span class='indexparent'><a class='index' id='lib:static_downcast'></a></span></div><div class='itemdecl' id='itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L71'>#</a></div><div id='2.sentence-1' class='sentence'>Let <span class='texttt'><span class='textit'>derived-ref</span></span> be
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span><span class='parenthesis'>(</span>std<span class='operator'>​::​</span>forward<span class='anglebracket'><</span>Base<span class='anglebracket'>></span><span class='parenthesis'>(</span>base<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div><div class='para' id='3'><div class='marginalizedparent'><a class='marginalized' href='#3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L75'>#</a></div><div id='3.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='3.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#3.1'>(3.1)</a></div><span class='texttt'>DerivedRef</span> is a reference type,</li><li id='3.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#3.2'>(3.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span></span> is derived from
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>Base<span class='anglebracket'>></span></span>, and</li><li id='3.3'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#3.3'>(3.3)</a></div><span class='texttt'><span class='textit'>derived-ref</span></span> is well-formed<a class='hidden_link' href='#3.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='4'><div class='marginalizedparent'><a class='marginalized' href='#4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L87'>#</a></div><div id='4.sentence-1' class='sentence'><span class='textit'>Preconditions:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span> has well-defined behavior<a class='hidden_link' href='#4.sentence-1'>.</a></div></div></div><div class='para' id='5'><div class='marginalizedparent'><a class='marginalized' href='#5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L91'>#</a></div><div id='5.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span><a class='hidden_link' href='#5.sentence-1'>.</a></div></div></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>JEGP Library: Tables</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1>List of Tables <a href='./#tab' class='abbr_ref'>[tab]</a></h1><hr><h4 ><a class='secnum' style='min-width:88pt'>3.1</a> General <a class='abbr_ref' href='intro.general#tab:library.categories'>[intro.general]</a></h4><div class='numberedTable' id='library.categories'>Table <a href='#library.categories'>1</a>: Library categories   [tab:library.categories]<br><table ><tr class='rowsep'><td class='left'><div id='sentence-3' class='sentence'><b>Clause</b></div></td><td class='left'><div id='sentence-4' class='sentence'><b>Category</b></div></td></tr><tr class='capsep'><td class='left'><div id='sentence-5' class='sentence'><a href='utilities'>[utilities]</a></div></td><td class='left'><div id='sentence-6' class='sentence'>General utilities library</div></td></tr></table></div><hr><h4 ><a class='secnum' style='min-width:88pt'>4.1</a> General <a class='abbr_ref' href='utilities.general#tab:utilities.summary'>[utilities.general]</a></h4><div class='numberedTable' id='utilities.summary'>Table <a href='#utilities.summary'>2</a>: General utilities library summary   [tab:utilities.summary]<br><table ><tr class='rowsep'><td class='empty left'></td><td class='left'><div id='sentence-3' class='sentence'><b>Subclause</b></div></td><td class='left'><div id='sentence-4' class='sentence'><b>Header</b></div></td></tr><tr class='capsep'><td class='left'><div id='sentence-5' class='sentence'><a href='utility'>[utility]</a></div></td><td class='left'><div id='sentence-6' class='sentence'>Utility components</div></td><td class='left'><div id='sentence-7' class='sentence'><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span></div></td></tr></table></div></div></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[utilities.general]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.1</a> General <a class='abbr_ref'>[utilities.general]</a></h2><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L6'>#</a></div><div id='1.sentence-1' class='sentence'>This clause describes generally useful utilities<a class='hidden_link' href='#1.sentence-1'>.</a></div> <div id='1.sentence-2' class='sentence'>These utilities are summarized in Table <a href='#tab:utilities.summary'>2</a><a class='hidden_link' href='#1.sentence-2'>.</a></div><div class='numberedTable' id='tab:utilities.summary'>Table <a href='#tab:utilities.summary'>2</a>: General utilities library summary   [tab:utilities.summary]<br><table ><tr class='rowsep'><td class='empty left'></td><td class='left'><div id='1.sentence-3' class='sentence'><b>Subclause</b></div></td><td class='left'><div id='1.sentence-4' class='sentence'><b>Header</b></div></td></tr><tr class='capsep'><td class='left'><div id='1.sentence-5' class='sentence'><a href='utility'>[utility]</a></div></td><td class='left'><div id='1.sentence-6' class='sentence'>Utility components</div></td><td class='left'><div id='1.sentence-7' class='sentence'><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span></div></td></tr></table></div></div></div></body></html>
|
||||
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[utilities]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><div id='general' class='section'><h2 ><a class='secnum' href='#general' style='min-width:88pt'>4.1</a> General <a class='abbr_ref' href='utilities.general'>[utilities.general]</a></h2><div class='para' id='general-1'><div class='marginalizedparent'><a class='marginalized' href='#general-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L6'>#</a></div><div id='general-1.sentence-1' class='sentence'>This clause describes generally useful utilities<a class='hidden_link' href='#general-1.sentence-1'>.</a></div> <div id='general-1.sentence-2' class='sentence'>These utilities are summarized in Table <a href='#tab:utilities.summary'>2</a><a class='hidden_link' href='#general-1.sentence-2'>.</a></div><div class='numberedTable' id='tab:utilities.summary'>Table <a href='#tab:utilities.summary'>2</a>: General utilities library summary   [tab:utilities.summary]<br><table ><tr class='rowsep'><td class='empty left'></td><td class='left'><div id='general-1.sentence-3' class='sentence'><b>Subclause</b></div></td><td class='left'><div id='general-1.sentence-4' class='sentence'><b>Header</b></div></td></tr><tr class='capsep'><td class='left'><div id='general-1.sentence-5' class='sentence'><a href='#utility'>[utility]</a></div></td><td class='left'><div id='general-1.sentence-6' class='sentence'>Utility components</div></td><td class='left'><div id='general-1.sentence-7' class='sentence'><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span></div></td></tr></table></div></div></div><div id='utility' class='section'><h2 ><a class='secnum' href='#utility' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility'>[utility]</a></h2><div id='utility.syn' class='section'><h3 ><a class='secnum' href='#utility.syn' style='min-width:103pt'>4.2.1</a> Header <span class='texttt'><jegp/utility.hpp></span> synopsis <a class='abbr_ref' href='utility.syn'>[utility.syn]</a></h3><div class='para' id='utility.syn-1'><div class='marginalizedparent'><a class='marginalized' href='#utility.syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L18'>#</a></div><div id='utility.syn-1.sentence-1' class='sentence'>The header <span class='indexparent'><a class='index' id=':<jegp/utility.hpp>'></a></span><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span>
|
||||
contains some basic constructs<a class='hidden_link' href='#utility.syn-1.sentence-1'>.</a></div><span class='indexparent'><a class='index' id=':<jegp/utility.hpp>_'></a></span><pre class='codeblock'>
|
||||
<span class='keyword'>namespace</span> jegp
|
||||
<span class='curlybracket'>{</span>
|
||||
<span class='comment'>// <a href='#utility.underlying'>[utility.underlying]</a>, <span class='tcode_in_codeblock'>underlying</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#static.downcast'>[static.downcast]</a>, <span class='tcode_in_codeblock'>static_­downcast</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#hash.combine'>[hash.combine]</a>, <span class='tcode_in_codeblock'>hash_­combine</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
|
||||
<span class='curlybracket'>}</span> <span class='comment'>// namespace jegp</span>
|
||||
</pre></div></div><div id='utility.underlying' class='section'><h3 ><a class='secnum' href='#utility.underlying' style='min-width:103pt'>4.2.2</a> <span class='texttt'>underlying</span> <a class='abbr_ref' href='utility.underlying'>[utility.underlying]</a></h3><span class='indexparent'><a class='index' id='lib:underlying'></a></span><div class='itemdecl' id='utility.underlying-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#utility.underlying-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='utility.underlying-1'><div class='marginalizedparent'><a class='marginalized' href='#utility.underlying-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L50'>#</a></div><div id='utility.underlying-1.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>is_­enum_­v<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#utility.underlying-1.sentence-1'>.</a></div></div></div><div class='para' id='utility.underlying-2'><div class='marginalizedparent'><a class='marginalized' href='#utility.underlying-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L54'>#</a></div><div id='utility.underlying-2.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>std<span class='operator'>​::​</span>underlying_­type_­t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span><span class='anglebracket'>></span><span class='parenthesis'>(</span>e<span class='parenthesis'>)</span></span><a class='hidden_link' href='#utility.underlying-2.sentence-1'>.</a></div></div></div></div><div id='static.downcast' class='section'><h3 ><a class='secnum' href='#static.downcast' style='min-width:103pt'>4.2.3</a> <span class='texttt'>static_­downcast</span> <a class='abbr_ref' href='static.downcast'>[static.downcast]</a></h3><div class='para' id='static.downcast-1'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L61'>#</a></div><div id='static.downcast-1.sentence-1' class='sentence'>A <span class='texttt'><span class='keyword'>static_­cast</span></span> that performs a downcast<a class='hidden_link' href='#static.downcast-1.sentence-1'>.</a></div> <span class='indexparent'><a class='index' id='lib:static_downcast'></a></span></div><div class='itemdecl' id='static.downcast-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#static.downcast-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='static.downcast-2'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L71'>#</a></div><div id='static.downcast-2.sentence-1' class='sentence'>Let <span class='texttt'><span class='textit'>derived-ref</span></span> be
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span><span class='parenthesis'>(</span>std<span class='operator'>​::​</span>forward<span class='anglebracket'><</span>Base<span class='anglebracket'>></span><span class='parenthesis'>(</span>base<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#static.downcast-2.sentence-1'>.</a></div></div></div><div class='para' id='static.downcast-3'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L75'>#</a></div><div id='static.downcast-3.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='static.downcast-3.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.1'>(3.1)</a></div><span class='texttt'>DerivedRef</span> is a reference type,</li><li id='static.downcast-3.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.2'>(3.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span></span> is derived from
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>Base<span class='anglebracket'>></span></span>, and</li><li id='static.downcast-3.3'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.3'>(3.3)</a></div><span class='texttt'><span class='textit'>derived-ref</span></span> is well-formed<a class='hidden_link' href='#static.downcast-3.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='static.downcast-4'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L87'>#</a></div><div id='static.downcast-4.sentence-1' class='sentence'><span class='textit'>Preconditions:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span> has well-defined behavior<a class='hidden_link' href='#static.downcast-4.sentence-1'>.</a></div></div></div><div class='para' id='static.downcast-5'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L91'>#</a></div><div id='static.downcast-5.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span><a class='hidden_link' href='#static.downcast-5.sentence-1'>.</a></div></div></div></div><div id='hash.combine' class='section'><h3 ><a class='secnum' href='#hash.combine' style='min-width:103pt'>4.2.4</a> <span class='texttt'>hash_­combine</span> <a class='abbr_ref' href='hash.combine'>[hash.combine]</a></h3><div class='para' id='hash.combine-1'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L98'>#</a></div><div id='hash.combine-1.sentence-1' class='sentence'>Insipred by <span class='texttt'>Boost<span class='operator'>.</span>ContainerHash</span><a class='hidden_link' href='#hash.combine-1.sentence-1'>.</a></div> <div id='hash.combine-1.sentence-2' class='sentence'>Useful in the specializations of <span class='texttt'>std<span class='operator'>​::​</span>hash</span>
|
||||
whose <span class='texttt'>Key</span>'s salient parts consist of two or more objects<a class='hidden_link' href='#hash.combine-1.sentence-2'>.</a></div> <span class='indexparent'><a class='index' id='lib:hash_combine'></a></span></div><div class='itemdecl' id='hash.combine-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#hash.combine-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='hash.combine-2'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L110'>#</a></div><div id='hash.combine-2.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='hash.combine-2.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#hash.combine-2.1'>(2.1)</a></div><span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.519em; padding-bottom: 0.519em;"><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Args<span class='parenthesis'>)</span></span></span></span></span><span class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.446em;">≥</span></span><span class="mjx-texatom MJXc-space3"><span class="mjx-mrow"></span></span><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">2</span></span></span></span></span> and</li><li id='hash.combine-2.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#hash.combine-2.2'>(2.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>hash<span class='anglebracket'><</span>T<span class='anglebracket'>></span></span> is enabled (C++ Standard's <a href="https://wg21.link/unord.hash">[unord.hash]</a>)
|
||||
for all <span class='texttt'>T</span> in <span class='texttt'>Args</span><a class='hidden_link' href='#hash.combine-2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='hash.combine-3'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L120'>#</a></div><div id='hash.combine-3.sentence-1' class='sentence'><span class='textit'>Effects:</span>
|
||||
Equivalent to:
|
||||
<pre class='codeblock'>
|
||||
std<span class='operator'>::</span>size_t seed<span class='curlybracket'>{</span><span class='literal'>0</span><span class='curlybracket'>}</span>;
|
||||
<span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span>, <span class='parenthesis'>(</span>seed <span class='operator'>^</span><span class='operator'>=</span> std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'><</span><span class='anglebracket'><</span> <span class='literal'>6</span><span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='literal'>2</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
||||
</pre></div></div></div><div class='para' id='hash.combine-4'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L128'>#</a></div><div id='hash.combine-4.sentence-1' class='sentence'><span class='textit'>Remarks:</span>
|
||||
The expression inside <span class='texttt'><span class='keyword'>noexcept</span></span> is equivalent to
|
||||
<pre class='codeblock'>
|
||||
<span class='parenthesis'>(</span><span class='keyword'>noexcept</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>
|
||||
</pre></div></div></div></div></div></div></body></html>
|
||||
@@ -0,0 +1,43 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[utility]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref'>[utility]</a></h2><div id='syn' class='section'><h3 ><a class='secnum' href='#syn' style='min-width:103pt'>4.2.1</a> Header <span class='texttt'><jegp/utility.hpp></span> synopsis <a class='abbr_ref' href='utility.syn'>[utility.syn]</a></h3><div class='para' id='syn-1'><div class='marginalizedparent'><a class='marginalized' href='#syn-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L18'>#</a></div><div id='syn-1.sentence-1' class='sentence'>The header <span class='indexparent'><a class='index' id=':<jegp/utility.hpp>'></a></span><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span>
|
||||
contains some basic constructs<a class='hidden_link' href='#syn-1.sentence-1'>.</a></div><span class='indexparent'><a class='index' id=':<jegp/utility.hpp>_'></a></span><pre class='codeblock'>
|
||||
<span class='keyword'>namespace</span> jegp
|
||||
<span class='curlybracket'>{</span>
|
||||
<span class='comment'>// <a href='#underlying'>[utility.underlying]</a>, <span class='tcode_in_codeblock'>underlying</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#static.downcast'>[static.downcast]</a>, <span class='tcode_in_codeblock'>static_­downcast</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='#hash.combine'>[hash.combine]</a>, <span class='tcode_in_codeblock'>hash_­combine</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
|
||||
<span class='curlybracket'>}</span> <span class='comment'>// namespace jegp</span>
|
||||
</pre></div></div><div id='underlying' class='section'><h3 ><a class='secnum' href='#underlying' style='min-width:103pt'>4.2.2</a> <span class='texttt'>underlying</span> <a class='abbr_ref' href='utility.underlying'>[utility.underlying]</a></h3><span class='indexparent'><a class='index' id='lib:underlying'></a></span><div class='itemdecl' id='underlying-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#underlying-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='underlying-1'><div class='marginalizedparent'><a class='marginalized' href='#underlying-1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L50'>#</a></div><div id='underlying-1.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>is_­enum_­v<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#underlying-1.sentence-1'>.</a></div></div></div><div class='para' id='underlying-2'><div class='marginalizedparent'><a class='marginalized' href='#underlying-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L54'>#</a></div><div id='underlying-2.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>std<span class='operator'>​::​</span>underlying_­type_­t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span><span class='anglebracket'>></span><span class='parenthesis'>(</span>e<span class='parenthesis'>)</span></span><a class='hidden_link' href='#underlying-2.sentence-1'>.</a></div></div></div></div><div id='static.downcast' class='section'><h3 ><a class='secnum' href='#static.downcast' style='min-width:103pt'>4.2.3</a> <span class='texttt'>static_­downcast</span> <a class='abbr_ref' href='static.downcast'>[static.downcast]</a></h3><div class='para' id='static.downcast-1'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L61'>#</a></div><div id='static.downcast-1.sentence-1' class='sentence'>A <span class='texttt'><span class='keyword'>static_­cast</span></span> that performs a downcast<a class='hidden_link' href='#static.downcast-1.sentence-1'>.</a></div> <span class='indexparent'><a class='index' id='lib:static_downcast'></a></span></div><div class='itemdecl' id='static.downcast-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#static.downcast-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='static.downcast-2'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L71'>#</a></div><div id='static.downcast-2.sentence-1' class='sentence'>Let <span class='texttt'><span class='textit'>derived-ref</span></span> be
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span><span class='parenthesis'>(</span>std<span class='operator'>​::​</span>forward<span class='anglebracket'><</span>Base<span class='anglebracket'>></span><span class='parenthesis'>(</span>base<span class='parenthesis'>)</span><span class='parenthesis'>)</span></span><a class='hidden_link' href='#static.downcast-2.sentence-1'>.</a></div></div></div><div class='para' id='static.downcast-3'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L75'>#</a></div><div id='static.downcast-3.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='static.downcast-3.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.1'>(3.1)</a></div><span class='texttt'>DerivedRef</span> is a reference type,</li><li id='static.downcast-3.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.2'>(3.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>DerivedRef<span class='anglebracket'>></span></span> is derived from
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>remove_­cvref_­t<span class='anglebracket'><</span>Base<span class='anglebracket'>></span></span>, and</li><li id='static.downcast-3.3'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#static.downcast-3.3'>(3.3)</a></div><span class='texttt'><span class='textit'>derived-ref</span></span> is well-formed<a class='hidden_link' href='#static.downcast-3.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='static.downcast-4'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L87'>#</a></div><div id='static.downcast-4.sentence-1' class='sentence'><span class='textit'>Preconditions:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span> has well-defined behavior<a class='hidden_link' href='#static.downcast-4.sentence-1'>.</a></div></div></div><div class='para' id='static.downcast-5'><div class='marginalizedparent'><a class='marginalized' href='#static.downcast-5'>5</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L91'>#</a></div><div id='static.downcast-5.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='textit'>derived-ref</span></span><a class='hidden_link' href='#static.downcast-5.sentence-1'>.</a></div></div></div></div><div id='hash.combine' class='section'><h3 ><a class='secnum' href='#hash.combine' style='min-width:103pt'>4.2.4</a> <span class='texttt'>hash_­combine</span> <a class='abbr_ref' href='hash.combine'>[hash.combine]</a></h3><div class='para' id='hash.combine-1'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L98'>#</a></div><div id='hash.combine-1.sentence-1' class='sentence'>Insipred by <span class='texttt'>Boost<span class='operator'>.</span>ContainerHash</span><a class='hidden_link' href='#hash.combine-1.sentence-1'>.</a></div> <div id='hash.combine-1.sentence-2' class='sentence'>Useful in the specializations of <span class='texttt'>std<span class='operator'>​::​</span>hash</span>
|
||||
whose <span class='texttt'>Key</span>'s salient parts consist of two or more objects<a class='hidden_link' href='#hash.combine-1.sentence-2'>.</a></div> <span class='indexparent'><a class='index' id='lib:hash_combine'></a></span></div><div class='itemdecl' id='hash.combine-itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#hash.combine-itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='hash.combine-2'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L110'>#</a></div><div id='hash.combine-2.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<ul class='itemize'><li id='hash.combine-2.1'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#hash.combine-2.1'>(2.1)</a></div><span class="mjx-chtml"><span class="mjx-math"><span class="mjx-mrow" aria-hidden="true"><span class="mjx-texatom"><span class="mjx-mrow"><span class="mjx-mtext"><span class="mjx-char MJXc-TeX-type-R" style="padding-top: 0.519em; padding-bottom: 0.519em;"><span class='keyword'>sizeof</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>(</span>Args<span class='parenthesis'>)</span></span></span></span></span><span class="mjx-mo MJXc-space3"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.446em;">≥</span></span><span class="mjx-texatom MJXc-space3"><span class="mjx-mrow"></span></span><span class="mjx-mn"><span class="mjx-char MJXc-TeX-main-R" style="padding-top: 0.372em; padding-bottom: 0.372em;">2</span></span></span></span></span> and</li><li id='hash.combine-2.2'><div class='marginalizedparent' style='left:-10em'><a class='marginalized' href='#hash.combine-2.2'>(2.2)</a></div><span class='texttt'>std<span class='operator'>​::​</span>hash<span class='anglebracket'><</span>T<span class='anglebracket'>></span></span> is enabled (C++ Standard's <a href="https://wg21.link/unord.hash">[unord.hash]</a>)
|
||||
for all <span class='texttt'>T</span> in <span class='texttt'>Args</span><a class='hidden_link' href='#hash.combine-2.sentence-1'>.</a></li></ul></div></div></div><div class='para' id='hash.combine-3'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-3'>3</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L120'>#</a></div><div id='hash.combine-3.sentence-1' class='sentence'><span class='textit'>Effects:</span>
|
||||
Equivalent to:
|
||||
<pre class='codeblock'>
|
||||
std<span class='operator'>::</span>size_t seed<span class='curlybracket'>{</span><span class='literal'>0</span><span class='curlybracket'>}</span>;
|
||||
<span class='keyword'>return</span> <span class='parenthesis'>(</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span>, <span class='parenthesis'>(</span>seed <span class='operator'>^</span><span class='operator'>=</span> std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'><</span><span class='anglebracket'><</span> <span class='literal'>6</span><span class='parenthesis'>)</span> <span class='operator'>+</span> <span class='parenthesis'>(</span>seed <span class='anglebracket'>></span><span class='anglebracket'>></span> <span class='literal'>2</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span><span class='parenthesis'>)</span>;
|
||||
</pre></div></div></div><div class='para' id='hash.combine-4'><div class='marginalizedparent'><a class='marginalized' href='#hash.combine-4'>4</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L128'>#</a></div><div id='hash.combine-4.sentence-1' class='sentence'><span class='textit'>Remarks:</span>
|
||||
The expression inside <span class='texttt'><span class='keyword'>noexcept</span></span> is equivalent to
|
||||
<pre class='codeblock'>
|
||||
<span class='parenthesis'>(</span><span class='keyword'>noexcept</span><span class='parenthesis'>(</span>std<span class='operator'>::</span>hash<span class='anglebracket'><</span>Args<span class='anglebracket'>></span><span class='curlybracket'>{</span><span class='curlybracket'>}</span><span class='parenthesis'>(</span>args<span class='parenthesis'>)</span><span class='parenthesis'>)</span> <span class='operator'>&</span><span class='operator'>&</span> <span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span><span class='parenthesis'>)</span>
|
||||
</pre></div></div></div></div></div></body></html>
|
||||
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[utility.syn]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility#syn'>[utility]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>4.2.1</a> Header <span class='texttt'><jegp/utility.hpp></span> synopsis <a class='abbr_ref'>[utility.syn]</a></h3><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L18'>#</a></div><div id='1.sentence-1' class='sentence'>The header <span class='indexparent'><a class='index' id=':<jegp/utility.hpp>'></a></span><span class='texttt'><span class='anglebracket'><</span>jegp<span class='operator'>/</span>utility<span class='operator'>.</span>hpp<span class='anglebracket'>></span></span>
|
||||
contains some basic constructs<a class='hidden_link' href='#1.sentence-1'>.</a></div><span class='indexparent'><a class='index' id=':<jegp/utility.hpp>_'></a></span><pre class='codeblock'>
|
||||
<span class='keyword'>namespace</span> jegp
|
||||
<span class='curlybracket'>{</span>
|
||||
<span class='comment'>// <a href='utility.underlying'>[utility.underlying]</a>, <span class='tcode_in_codeblock'>underlying</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='static.downcast'>[static.downcast]</a>, <span class='tcode_in_codeblock'>static_­downcast</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> DerivedRef, <span class='keyword'>class</span> Base<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> DerivedRef static_downcast<span class='parenthesis'>(</span>Base<span class='operator'>&</span><span class='operator'>&</span> base<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
|
||||
<span class='comment'>// <a href='hash.combine'>[hash.combine]</a>, <span class='tcode_in_codeblock'>hash_­combine</span></span>
|
||||
<span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> Args<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>size_t hash_combine<span class='parenthesis'>(</span><span class='keyword'>const</span> Args<span class='operator'>&</span><span class='operator'>.</span><span class='operator'>.</span><span class='operator'>.</span> args<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span><span class='parenthesis'>(</span><span class='textit'><span class='texttt'>see below</span></span><span class='parenthesis'>)</span>;
|
||||
|
||||
<span class='curlybracket'>}</span> <span class='comment'>// namespace jegp</span>
|
||||
</pre></div></div></body></html>
|
||||
@@ -0,0 +1,5 @@
|
||||
<!DOCTYPE html><html lang='en'><head><title>[utility.underlying]</title><meta charset='UTF-8'/><link rel='stylesheet' type='text/css' href='14882.css'/><link rel='stylesheet' type='text/css' href='expanded.css' title='Notes and examples expanded'/><link rel='alternate stylesheet' type='text/css' href='colored.css' title='Notes and examples colored'/><link rel='icon' href='icon.png'/></head><body><div class='wrapper'><h1 ><a class='secnum' style='min-width:73pt'>4</a> General utilities library <a class='abbr_ref' href='./#utilities'>[utilities]</a></h1><h2 ><a class='secnum' style='min-width:88pt'>4.2</a> Utility components <a class='abbr_ref' href='utility#underlying'>[utility]</a></h2><h3 ><a class='secnum' style='min-width:103pt'>4.2.2</a> <span class='texttt'>underlying</span> <a class='abbr_ref'>[utility.underlying]</a></h3><span class='indexparent'><a class='index' id='lib:underlying'></a></span><div class='itemdecl' id='itemdecl:1'><div class='marginalizedparent'><a class='itemDeclLink' href='#itemdecl:1'>🔗</a></div><code class='itemdeclcode'><span class='keyword'>template</span> <span class='anglebracket'><</span><span class='keyword'>class</span> Enum<span class='anglebracket'>></span>
|
||||
<span class='keyword'>constexpr</span> std<span class='operator'>::</span>underlying_type_t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span> underlying<span class='parenthesis'>(</span>Enum e<span class='parenthesis'>)</span> <span class='keyword'>noexcept</span>;
|
||||
</code></div><div class='itemdescr'></div><div class='para' id='1'><div class='marginalizedparent'><a class='marginalized' href='#1'>1</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L50'>#</a></div><div id='1.sentence-1' class='sentence'><span class='textit'>Constraints:</span>
|
||||
<span class='texttt'>std<span class='operator'>​::​</span>is_­enum_­v<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span></span> is <span class='texttt'><span class='literal'>true</span></span><a class='hidden_link' href='#1.sentence-1'>.</a></div></div></div><div class='para' id='2'><div class='marginalizedparent'><a class='marginalized' href='#2'>2</a></div><div class='itemdescr'><div class='sourceLinkParent'><a class='sourceLink' href='https://github.com/johelegp/jegp/tree/4dfbe8f5446ba1f53439a36ce12119fe285268c9/doc/utilities.tex#L54'>#</a></div><div id='2.sentence-1' class='sentence'><span class='textit'>Returns:</span>
|
||||
<span class='texttt'><span class='keyword'>static_­cast</span><span class='anglebracket'><</span>std<span class='operator'>​::​</span>underlying_­type_­t<span class='anglebracket'><</span>Enum<span class='anglebracket'>></span><span class='anglebracket'>></span><span class='parenthesis'>(</span>e<span class='parenthesis'>)</span></span><a class='hidden_link' href='#2.sentence-1'>.</a></div></div></div></div></body></html>
|
||||
@@ -0,0 +1,9 @@
|
||||
/*! iFrame Resizer (iframeSizer.contentWindow.min.js) - v4.3.9 - 2023-11-10
|
||||
* Desc: Include this file in any page being loaded into an iframe
|
||||
* to force the iframe to resize to the content size.
|
||||
* Requires: iframeResizer.min.js on host page.
|
||||
* Copyright: (c) 2023 David J. Bradshaw - dave@bradshaw.net
|
||||
* License: MIT
|
||||
*/
|
||||
!function(a){if("undefined"!=typeof window){var r=!0,P="",u=0,c="",s=null,D="",d=!1,j={resize:1,click:1},l=128,q=!0,f=1,n="bodyOffset",m=n,H=!0,W="",h={},g=32,B=null,p=!1,v=!1,y="[iFrameSizer]",J=y.length,w="",U={max:1,min:1,bodyScroll:1,documentElementScroll:1},b="child",V=!0,X=window.parent,T="*",E=0,i=!1,Y=null,O=16,S=1,K="scroll",M=K,Q=window,G=function(){x("onMessage function not defined")},Z=function(){},$=function(){},_={height:function(){return x("Custom height calculation function not defined"),document.documentElement.offsetHeight},width:function(){return x("Custom width calculation function not defined"),document.body.scrollWidth}},ee={},te=!1;try{var ne=Object.create({},{passive:{get:function(){te=!0}}});window.addEventListener("test",ae,ne),window.removeEventListener("test",ae,ne)}catch(e){}var oe,o,I,ie,N,A,C={bodyOffset:function(){return document.body.offsetHeight+ye("marginTop")+ye("marginBottom")},offset:function(){return C.bodyOffset()},bodyScroll:function(){return document.body.scrollHeight},custom:function(){return _.height()},documentElementOffset:function(){return document.documentElement.offsetHeight},documentElementScroll:function(){return document.documentElement.scrollHeight},max:function(){return Math.max.apply(null,e(C))},min:function(){return Math.min.apply(null,e(C))},grow:function(){return C.max()},lowestElement:function(){return Math.max(C.bodyOffset()||C.documentElementOffset(),we("bottom",Te()))},taggedElement:function(){return be("bottom","data-iframe-height")}},z={bodyScroll:function(){return document.body.scrollWidth},bodyOffset:function(){return document.body.offsetWidth},custom:function(){return _.width()},documentElementScroll:function(){return document.documentElement.scrollWidth},documentElementOffset:function(){return document.documentElement.offsetWidth},scroll:function(){return Math.max(z.bodyScroll(),z.documentElementScroll())},max:function(){return Math.max.apply(null,e(z))},min:function(){return Math.min.apply(null,e(z))},rightMostElement:function(){return we("right",Te())},taggedElement:function(){return be("right","data-iframe-width")}},re=(oe=Ee,N=null,A=0,function(){var e=Date.now(),t=O-(e-(A=A||e));return o=this,I=arguments,t<=0||O<t?(N&&(clearTimeout(N),N=null),A=e,ie=oe.apply(o,I),N||(o=I=null)):N=N||setTimeout(Oe,t),ie});k(window,"message",function(t){var n={init:function(){W=t.data,X=t.source,se(),q=!1,setTimeout(function(){H=!1},l)},reset:function(){H?R("Page reset ignored by init"):(R("Page size reset by host page"),Me("resetPage"))},resize:function(){L("resizeParent","Parent window requested size check")},moveToAnchor:function(){h.findTarget(i())},inPageLink:function(){this.moveToAnchor()},pageInfo:function(){var e=i();R("PageInfoFromParent called from parent: "+e),$(JSON.parse(e)),R(" --")},message:function(){var e=i();R("onMessage called from parent: "+e),G(JSON.parse(e)),R(" --")}};function o(){return t.data.split("]")[1].split(":")[0]}function i(){return t.data.slice(t.data.indexOf(":")+1)}function r(){return t.data.split(":")[2]in{true:1,false:1}}function e(){var e=o();e in n?n[e]():("undefined"==typeof module||!module.exports)&&"iFrameResize"in window||window.jQuery!==a&&"iFrameResize"in window.jQuery.prototype||r()||x("Unexpected message ("+t.data+")")}y===(""+t.data).slice(0,J)&&(!1===q?e():r()?n.init():R('Ignored message of type "'+o()+'". Received before initialization.'))}),k(window,"readystatechange",Ne),Ne()}function ae(){}function k(e,t,n,o){e.addEventListener(t,n,!!te&&(o||{}))}function ue(e){return e.charAt(0).toUpperCase()+e.slice(1)}function ce(e){return y+"["+w+"] "+e}function R(e){p&&"object"==typeof window.console&&console.log(ce(e))}function x(e){"object"==typeof window.console&&console.warn(ce(e))}function se(){function e(e){return"true"===e}function t(e,t){return"function"==typeof e&&(R("Setup custom "+t+"CalcMethod"),_[t]=e,e="custom"),e}{var n;n=W.slice(J).split(":"),w=n[0],u=a===n[1]?u:Number(n[1]),d=a===n[2]?d:e(n[2]),p=a===n[3]?p:e(n[3]),g=a===n[4]?g:Number(n[4]),r=a===n[6]?r:e(n[6]),c=n[7],m=a===n[8]?m:n[8],P=n[9],D=n[10],E=a===n[11]?E:Number(n[11]),h.enable=a!==n[12]&&e(n[12]),b=a===n[13]?b:n[13],M=a===n[14]?M:n[14],v=a===n[15]?v:e(n[15]),R("Initialising iFrame ("+window.location.href+")"),"iFrameResizer"in window&&Object===window.iFrameResizer.constructor&&(n=window.iFrameResizer,R("Reading data from page: "+JSON.stringify(n)),Object.keys(n).forEach(de,n),G="onMessage"in n?n.onMessage:G,Z="onReady"in n?n.onReady:Z,T="targetOrigin"in n?n.targetOrigin:T,m="heightCalculationMethod"in n?n.heightCalculationMethod:m,M="widthCalculationMethod"in n?n.widthCalculationMethod:M,m=t(m,"height"),M=t(M,"width"))}function o(e){F(0,0,e.type,e.screenY+":"+e.screenX)}function i(e,t){R("Add event listener: "+t),k(window.document,e,o)}R("TargetOrigin for parent set to: "+T),le("margin",function(e,t){-1!==t.indexOf("-")&&(x("Negative CSS value ignored for "+e),t="");return t}("margin",c=a===c?u+"px":c)),le("background",P),le("padding",DLine truncated
|
||||
//# sourceMappingURL=iframeResizer.contentWindow.map
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
/*! iFrame Resizer (iframeSizer.min.js ) - v4.3.9 - 2023-11-10
|
||||
* Desc: Force cross domain iframes to size to content.
|
||||
* Requires: iframeResizer.contentWindow.min.js to be loaded into the target frame.
|
||||
* Copyright: (c) 2023 David J. Bradshaw - dave@bradshaw.net
|
||||
* License: MIT
|
||||
*/
|
||||
!function(d){var c,u,a,v,x,I,M,r,f,k,i,l,z;function m(){return window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver}function F(e,n,i){e.addEventListener(n,i,!1)}function B(e,n,i){e.removeEventListener(n,i,!1)}function p(e){return x+"["+(n="Host page: "+(e=e),n=window.top!==window.self?window.parentIFrame&&window.parentIFrame.getId?window.parentIFrame.getId()+": "+e:"Nested host page: "+e:n)+"]";var n}function t(e){return k[e]?k[e].log:u}function O(e,n){o("log",e,n,t(e))}function E(e,n){o("info",e,n,t(e))}function R(e,n){o("warn",e,n,!0)}function o(e,n,i,t){!0===t&&"object"==typeof window.console&&console[e](p(n),i)}function w(e){function i(){t("Height"),t("Width"),P(function(){H(w),C(b),l("onResized",w)},w,"init")}function n(){var e=p.slice(I).split(":"),n=e[1]?parseInt(e[1],10):0,i=k[e[0]]&&k[e[0]].iframe,t=getComputedStyle(i);return{iframe:i,id:e[0],height:n+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.paddingTop?parseInt(e.paddingTop,10):0,e=e.paddingBottom?parseInt(e.paddingBottom,10):0;return n+e}(t)+function(e){if("border-box"!==e.boxSizing)return 0;var n=e.borderTopWidth?parseInt(e.borderTopWidth,10):0,e=e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0;return n+e}(t),width:e[2],type:e[3]}}function t(e){var n=Number(k[b]["max"+e]),i=Number(k[b]["min"+e]),e=e.toLowerCase(),t=Number(w[e]);O(b,"Checking "+e+" is in range "+i+"-"+n),t<i&&(t=i,O(b,"Set "+e+" to min value")),n<t&&(t=n,O(b,"Set "+e+" to max value")),w[e]=""+t}function o(){var t=e.origin,o=k[b]&&k[b].checkOrigin;if(o&&""+t!="null"&&!function(){if(o.constructor!==Array)return e=k[b]&&k[b].remoteHost,O(b,"Checking connection is from: "+e),t===e;var e,n=0,i=!1;for(O(b,"Checking connection is from allowed list of origins: "+o);n<o.length;n++)if(o[n]===t){i=!0;break}return i}())throw new Error("Unexpected message received from: "+t+" for "+w.iframe.id+". Message was: "+e.data+". This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.");return 1}function a(e){return p.slice(p.indexOf(":")+v+e)}function s(i,t){var e,n,o;e=function(){var e,n;A("Send Page Info","pageInfo:"+(e=document.body.getBoundingClientRect(),n=w.iframe.getBoundingClientRect(),JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(document.documentElement.clientHeight,window.innerHeight||0),clientWidth:Math.max(document.documentElement.clientWidth,window.innerWidth||0),offsetTop:parseInt(n.top-e.top,10),offsetLeft:parseInt(n.left-e.left,10),scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,documentHeight:document.documentElement.clientHeight,documentWidth:document.documentElement.clientWidth,windowHeight:window.innerHeight,windowWidth:window.innerWidth})),i,t)},n=32,z[o=t]||(z[o]=setTimeout(function(){z[o]=null,e()},n))}function r(e){e=e.getBoundingClientRect();return W(b),{x:Math.floor(Number(e.left)+Number(M.x)),y:Math.floor(Number(e.top)+Number(M.y))}}function d(e){var n=e?r(w.iframe):{x:0,y:0},i={x:Number(w.width)+n.x,y:Number(w.height)+n.y};O(b,"Reposition requested from iFrame (offset x:"+n.x+" y:"+n.y+")"),window.top===window.self?(M=i,c(),O(b,"--")):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](i.x,i.y):R(b,"Unable to scroll to requested position, window.parentIFrame not found")}function c(){!1===l("onScroll",M)?S():C(b)}function u(e){var e=e.split("#")[1]||"",n=decodeURIComponent(e),n=document.getElementById(n)||document.getElementsByName(n)[0];n?(n=r(n),O(b,"Moving to in page link (#"+e+") at x: "+n.x+" y: "+n.y),M={x:n.x,y:n.y},c(),O(b,"--")):window.top===window.self?O(b,"In page link #"+e+" not found"):window.parentIFrame?window.parentIFrame.moveToAnchor(e):O(b,"In page link #"+e+" not found and window.parentIFrame not found")}function f(e){var n,i={};i=0===Number(w.width)&&0===Number(w.height)?{x:(n=a(9).split(":"))[1],y:n[0]}:{x:w.width,y:w.height},l(e,{iframe:w.iframe,screenX:Number(i.x),screenY:Number(i.y),type:w.type})}function l(e,n){return T(b,e,n)}function m(){switch(k[b]&&k[b].firstRun&&k[b]&&(k[b].firstRun=!1),w.type){case"close":N(w.iframe);break;case"message":n=a(6),O(b,"onMessage passed: {iframe: "+w.iframe.id+", message: "+n+"}"),l("onMessage",{iframe:w.iframe,message:JSON.parse(n)}),O(b,"--");break;case"mouseenter":f("onMouseEnter");break;case"mouseleave":f("onMouseLeave");break;case"autoResize":k[b].autoResize=JSON.parse(a(9));break;case"scrollTo":d(!1);break;case"scrollToOffset":d(!0);break;case"pageInfo":s(k[b]&&k[b].iframe,b),r=b,e("Add ",F),k[r]&&(k[r].stopPageInfo=o);break;case"pageInfoStop":k[b]&&k[b].stopPageInfo&&(k[b].stopPageInfo(),delete k[b].stopPageInfo);break;case"inPageLink":u(a(9));break;case"reset":j(w);break;case"init":i(),l("onInit",w.iframe);break;default:0===Number(w.width)&&0===Number(w.height)?R("Unsupported message received ("+w.type+"), this is likely due to the iframe containing a later version of iframe-resizer than the parent page"):i()}function e(n,i){function t()Line truncated
|
||||
//# sourceMappingURL=iframeResizer.map
|
||||
Vendored
+2
@@ -0,0 +1,2 @@
|
||||
/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
|
||||
!function (e, t) { "use strict"; "object" == typeof module && "object" == typeof module.exports ? module.exports = e.document ? t(e, !0) : function (e) { if (!e.document) throw new Error("jQuery requires a window with a document"); return t(e) } : t(e) }("undefined" != typeof window ? window : this, function (ie, e) { "use strict"; var oe = [], r = Object.getPrototypeOf, ae = oe.slice, g = oe.flat ? function (e) { return oe.flat.call(e) } : function (e) { return oe.concat.apply([], e) }, s = oe.push, se = oe.indexOf, n = {}, i = n.toString, ue = n.hasOwnProperty, o = ue.toString, a = o.call(Object), le = {}, v = function (e) { return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item }, y = function (e) { return null != e && e === e.window }, C = ie.document, u = { type: !0, src: !0, nonce: !0, noModule: !0 }; function m(e, t, n) { var r, i, o = (n = n || C).createElement("script"); if (o.text = e, t) for (r in u) (i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i); n.head.appendChild(o).parentNode.removeChild(o) } function x(e) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e } var t = "3.7.1", l = /HTML$/i, ce = function (e, t) { return new ce.fn.init(e, t) }; function c(e) { var t = !!e && "length" in e && e.length, n = x(e); return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e) } function fe(e, t) { return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase() } ce.fn = ce.prototype = { jquery: t, constructor: ce, length: 0, toArray: function () { return ae.call(this) }, get: function (e) { return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e] }, pushStack: function (e) { var t = ce.merge(this.constructor(), e); return t.prevObject = this, t }, each: function (e) { return ce.each(this, e) }, map: function (n) { return this.pushStack(ce.map(this, function (e, t) { return n.call(e, t, e) })) }, slice: function () { return this.pushStack(ae.apply(this, arguments)) }, first: function () { return this.eq(0) }, last: function () { return this.eq(-1) }, even: function () { return this.pushStack(ce.grep(this, function (e, t) { return (t + 1) % 2 })) }, odd: function () { return this.pushStack(ce.grep(this, function (e, t) { return t % 2 })) }, eq: function (e) { var t = this.length, n = +e + (e < 0 ? t : 0); return this.pushStack(0 <= n && n < t ? [this[n]] : []) }, end: function () { return this.prevObject || this.constructor() }, push: s, sort: oe.sort, splice: oe.splice }, ce.extend = ce.fn.extend = function () { var e, t, n, r, i, o, a = arguments[0] || {}, s = 1, u = arguments.length, l = !1; for ("boolean" == typeof a && (l = a, a = arguments[s] || {}, s++), "object" == typeof a || v(a) || (a = {}), s === u && (a = this, s--); s < u; s++)if (null != (e = arguments[s])) for (t in e) r = e[t], "__proto__" !== t && a !== r && (l && r && (ce.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {}, i = !1, a[t] = ce.extend(l, o, r)) : void 0 !== r && (a[t] = r)); return a }, ce.extend({ expando: "jQuery" + (t + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (e) { throw new Error(e) }, noop: function () { }, isPlainObject: function (e) { var t, n; return !(!e || "[object Object]" !== i.call(e)) && (!(t = r(e)) || "function" == typeof (n = ue.call(t, "constructor") && t.constructor) && o.call(n) === a) }, isEmptyObject: function (e) { var t; for (t in e) return !1; return !0 }, globalEval: function (e, t, n) { m(e, { nonce: t && t.nonce }, n) }, each: function (e, t) { var n, r = 0; if (c(e)) { for (n = e.length; r < n; r++)if (!1 === t.call(e[r], r, e[r])) break } else for (r in e) if (!1 === t.call(e[r], r, e[r])) break; return e }, text: function (e) { var t, n = "", r = 0, i = e.nodeType; if (!i) while (t = e[r++]) n += ce.text(t); return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n }, makeArray: function (e, t) { var n = t || []; return null != e && (c(Object(e)) ? ce.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n }, inArray: function (e, t, n) { return null == t ? -1 : se.call(t, e, n) }, isXMLDoc: function (e) { var t = e && e.namespaceURI, n = e && (e.ownerDocument || e).documentElement; return !l.test(t || n && n.nodeName || "HTML") }, merge: function (e, t) { for (var n = +t.length, r = 0, i = e.length; r < n; r++)e[i++] = t[r]; return e.length = i, e }, grep: function (e, t, n) { for (var r = [], i = 0, o = e.length, a = !n; i < o; i++)!t(e[i], i) !== a && r.push(e[i]); return r }, map: function (e, t, n) { var r, i, o = 0, a = []; if (c(e)) for (r = e.length; o < r; o++)null != (i = t(e[o], o, n)) && a.push(i); else for (o in e) null != (i = t(e[o], o, n)) && a.push(i); return g(a) }, guid: 1, support: le }), "function" == typeof Symbol && (Line truncated
|
||||
@@ -175,6 +175,7 @@ nav:
|
||||
- Appendix:
|
||||
- Glossary: appendix/glossary.md
|
||||
- References: appendix/references.md
|
||||
- API Reference: api.md
|
||||
- Blog:
|
||||
- blog/index.md
|
||||
- Release Notes: release_notes.md
|
||||
Reference in new issue
Block a user