Work in progress

This commit is contained in:
John Wellbelove 2026-03-22 17:54:38 +00:00
parent 61131a101b
commit bb284f98a8
5 changed files with 332 additions and 39 deletions

View File

@ -39,8 +39,9 @@ Set your own definitions if you require different defaults.
```C++
TSignature
```
The function signature.
e.g. `int(char, float)`
The function signature. e.g. `int(char, float)`
---
```C++
Object_Size
@ -48,10 +49,12 @@ Object_Size
Size of the internal storage buffer.
Defaults to `ETL_DEFAULT_INPLACE_FUNCTION_SIE`.
---
```C++
Object_Alignment
```
Alignment of the internal storage buffer.
Alignment of the internal storage buffer.
Defaults to `ETL_DEFAULT_INPLACE_FUNCTION_ALIGNMENT`.
## Exceptions
@ -61,11 +64,15 @@ etl::inplace_function_exception
```
Base exception.
---
```C++
etl::inplace_function_uninitialized
```
Thrown (via `ETL_ASSERT`) when invoked without a target.
---
## Member Types
```C++
@ -109,12 +116,16 @@ operator()
```
Invokes the bound callable and asserts if uninitialised.
---
```C++
call_if(...)
```
For `void` return bool indicating whether it executed.
For non-void returns etl::optional<TReturn>.
---
```C++
call_or(...)
```
@ -127,6 +138,8 @@ bool is_valid() const
```
Returns `true` if there is a valid callable.
---
```C++
explicit operator bool() const
```
@ -139,11 +152,15 @@ void clear()
```
Clears any stored callable.
---
```C++
void swap(inplace_function& other)
```
Swaps with another inplace_function.
---
## Storage Introspection
```C++
@ -151,6 +168,8 @@ static constexpr size_t size()
```
Returns the size of the internal storage.
---
```C++
static constexpr size_t alignment()
```
@ -166,6 +185,8 @@ void set()
```
Sets the callable to `Function`.
---
```C++
template <TReturn(*Function)(TArgs...)>
inplace_function<TReturn(TArgs...),
@ -182,6 +203,8 @@ set<TObject, &TMethod, Instance>()
```
Sets the callable to the member function `Method` for the object `Instance`.
---
```C++
create<TObject, &TMethod, Instance>()
```

View File

@ -1,16 +1,148 @@
.hx\:font-extrabold {
font-family: Tahoma, sans-serif !important;
font-size: 1.5rem !important;
color: #315887 !important;
html:not(.dark) h1 {
color: coral !important;
}
html:not(.dark) h2 {
color: #4884cc !important;
border-bottom: 2px solid black !important;
}
html:not(.dark) h3,
html:not(.dark) h4
{
color: green !important;
}
html:not(.dark) h4 code {
color: black !important;
}
html:not(.dark) p {
color: black !important;
}
html:not(.dark) dl,
html:not(.dark) dl dt code,
html:not(.dark) dl dd {
color: black !important;
background-color: dddddd !important;
}
html:not(.dark) code,
html:not(.dark) pre,
html:not(.dark) pre code {
color: darkslategrey !important;
background-color: #dddddd !important;
}
html:not(.dark) hr {
background-color: darkgrey !important;
}
html:not(.dark) .hx\:font-extrabold {
font-family: Tahoma, sans-serif !important;
font-size: 1.6rem !important;
color: black !important;
}
/* inactive */
html:not(.dark) .hx\:text-gray-500 {
color: rgb(30, 30, 30) !important;
}
/* active */
html:not(.dark) .hextra-sidebar-active-item {
color: black !important;
}
html.dark body {
background-color: #1e1e1e !important;
}
html.dark main {
background-color: #1e1e1e !important;
}
html.dark .hx\:dark\:shadow-\[0_-12px_16px_\#111\] {
box-shadow: 0 -12px 16px #1e1e1e !important;
}
html.dark .hx\:dark\:bg-dark {
background-color: #1e1e1e !important;
}
html.dark #backToTop {
color: #e0e0e0 !important;
}
html.dark #backToTop:hover {
color: white !important;
}
html.dark h1
{
color: coral !important;
}
html.dark h2 {
color: skyblue !important;
border-bottom: 2px solid #f0f0f0 !important;
}
html.dark h3,
html.dark h4 {
color: lightgreen !important;
}
html.dark p {
color: #f0f0f0 !important;
}
html.dark dl,
html.dark dl dt code,
html.dark dl dd {
color: white !important;
background-color: #444444 !important;
}
html.dark code,
html.dark pre,
html.dark pre code {
color: lightyellow !important;
background-color: #444444 !important;
}
html.dark hr {
background-color: #505050 !important;
}
html.dark .hx\:font-extrabold {
font-family: Tahoma, sans-serif !important;
font-size: 1.6rem !important;
color: #7099c7 !important;
}
/* inactive */
html.dark .hx\:text-gray-500 {
color: lightgrey !important;
}
/* active */
html.dark .hextra-sidebar-active-item {
color: white !important;
}
h1 {
font-family: Tahoma, sans-serif !important;
font-style: normal !important;
font-weight: normal !important;
margin-top: 0.5em !important;
margin-bottom: 0.0em !important;
color: coral !important;
}
h2 {
@ -20,8 +152,6 @@ h2 {
font-size: 150% !important;
margin-top: 1.0em !important;
margin-bottom: 0.5em !important;
border-bottom: 2px solid #333333 !important;
color: #4884cc !important;
}
h3 {
@ -31,7 +161,6 @@ h3 {
font-size: 130% !important;
margin-top: 0.5em !important;
margin-bottom: 0.5em !important;
color: green !important;
}
h4 {
@ -41,7 +170,6 @@ h4 {
font-size: 110% !important;
margin-top: 0.5em !important;
margin-bottom: 0.5em !important;
color: green !important;
}
dl {
@ -49,8 +177,6 @@ dl {
font-style: normal !important;
font-weight: normal !important;
font-size: 1rem !important;
color: black !important;
background-color: #f0f0f0 !important;
}
dl dt code {
@ -58,9 +184,6 @@ dl dt code {
font-style: normal !important;
font-weight: normal !important;
font-size: 1rem !important;
color: black;
background-color: #f0f0f0 !important;
border-style: none !important
}
dl dd {
@ -68,8 +191,6 @@ dl dd {
font-style: normal !important;
font-weight: normal !important;
font-size: 1rem !important;
color: black !important;
background-color: #f0f0f0 !important;
}
code {
@ -77,34 +198,34 @@ code {
font-style: normal !important;
font-weight: normal !important;
font-size: 1rem !important;
color: black !important;
background-color: #f0f0f0 !important;
border: 0 none !important;
border: none !important;
border-radius: 2px !important;
}
pre,
pre code {
font-family: Consolas, monospace !important;
font-style: normal !important;
font-weight: normal !important;
font-size: 1rem !important;
color: black !important;
background-color: #f0f0f0 !important;
padding-left: 0 !important;
margin-left: 0 !important;
border: none !important;
}
.markdown pre code {
line-height: 1.5 !important;
}
.markdown pre {
padding-top: 0.3rem !important;
padding-bottom: 0.3rem !important;
pre {
font-family: Consolas, monospace !important;
font-size: 1rem !important;
margin-top: 2em !important;
margin-bottom: 0em !important;
padding-top: 0.5em !important;
padding-bottom: 0.5em !important;
padding-left: 0.5em !important;
border: none !important;
border-radius: 2px !important;
}
hr {
height: 2px !important;
background-color: #333333 !important;
border: none !important;
margin-top: 10px !important;
margin-bottom: 1px !important;
@ -115,8 +236,7 @@ p {
font-style: normal !important;
font-weight: normal !important;
font-size: 110% !important;
color: black !important;
background-color: white !important;
margin-top: 1em !important;
}

View File

@ -0,0 +1,74 @@
/* Generated using: hugo gen chromastyles --style=aura-theme-dark-soft */
/* Background */ .bg { color:#bdbdbd;background-color:#15141b; }
/* PreWrapper */ .chroma { color:#bdbdbd;background-color:#15141b;-webkit-text-size-adjust:none; }
/* Error */ .chroma .err { color:#c55858 }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
/* LineHighlight */ .chroma .hl { background-color:#29263c }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6d6d6d }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#6d6d6d }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#8464c6 }
/* KeywordConstant */ .chroma .kc { color:#54c59f }
/* KeywordDeclaration */ .chroma .kd { color:#8464c6 }
/* KeywordNamespace */ .chroma .kn { color:#8464c6 }
/* KeywordPseudo */ .chroma .kp { color:#8464c6 }
/* KeywordReserved */ .chroma .kr { color:#8464c6 }
/* KeywordType */ .chroma .kt { color:#6cb2c7 }
/* NameAttribute */ .chroma .na { color:#c17ac8 }
/* NameClass */ .chroma .nc { color:#6cb2c7 }
/* NameConstant */ .chroma .no { color:#54c59f }
/* NameDecorator */ .chroma .nd { color:#c17ac8 }
/* NameEntity */ .chroma .ni { color:#c7a06f }
/* NameException */ .chroma .ne { color:#c55858 }
/* NameLabel */ .chroma .nl { color:#c17ac8 }
/* NameProperty */ .chroma .py { color:#c17ac8 }
/* NameTag */ .chroma .nt { color:#8464c6 }
/* NameBuiltin */ .chroma .nb { color:#6cb2c7 }
/* NameBuiltinPseudo */ .chroma .bp { color:#6cb2c7 }
/* NameFunction */ .chroma .nf { color:#c7a06f }
/* NameFunctionMagic */ .chroma .fm { color:#c7a06f }
/* Literal */ .chroma .l { color:#54c59f }
/* LiteralDate */ .chroma .ld { color:#54c59f }
/* LiteralString */ .chroma .s { color:#54c59f }
/* LiteralStringAffix */ .chroma .sa { color:#8464c6 }
/* LiteralStringBacktick */ .chroma .sb { color:#54c59f }
/* LiteralStringChar */ .chroma .sc { color:#54c59f }
/* LiteralStringDelimiter */ .chroma .dl { color:#54c59f }
/* LiteralStringDoc */ .chroma .sd { color:#6d6d6d }
/* LiteralStringDouble */ .chroma .s2 { color:#54c59f }
/* LiteralStringEscape */ .chroma .se { color:#8464c6 }
/* LiteralStringHeredoc */ .chroma .sh { color:#6d6d6d }
/* LiteralStringInterpol */ .chroma .si { color:#54c59f }
/* LiteralStringOther */ .chroma .sx { color:#54c59f }
/* LiteralStringRegex */ .chroma .sr { color:#54c59f }
/* LiteralStringSingle */ .chroma .s1 { color:#54c59f }
/* LiteralStringSymbol */ .chroma .ss { color:#54c59f }
/* LiteralNumber */ .chroma .m { color:#54c59f }
/* LiteralNumberBin */ .chroma .mb { color:#54c59f }
/* LiteralNumberFloat */ .chroma .mf { color:#54c59f }
/* LiteralNumberHex */ .chroma .mh { color:#54c59f }
/* LiteralNumberInteger */ .chroma .mi { color:#54c59f }
/* LiteralNumberIntegerLong */ .chroma .il { color:#54c59f }
/* LiteralNumberOct */ .chroma .mo { color:#54c59f }
/* Operator */ .chroma .o { color:#8464c6 }
/* OperatorWord */ .chroma .ow { color:#8464c6 }
/* Punctuation */ .chroma .p { color:#c17ac8 }
/* Comment */ .chroma .c { color:#6d6d6d;font-style:italic }
/* CommentHashbang */ .chroma .ch { color:#6d6d6d;font-style:italic }
/* CommentMultiline */ .chroma .cm { color:#6d6d6d;font-style:italic }
/* CommentSingle */ .chroma .c1 { color:#6d6d6d;font-style:italic }
/* CommentSpecial */ .chroma .cs { color:#6d6d6d;font-style:italic }
/* CommentPreproc */ .chroma .cp { color:#6d6d6d;font-style:italic }
/* CommentPreprocFile */ .chroma .cpf { color:#6d6d6d;font-style:italic }
/* GenericDeleted */ .chroma .gd { color:#c55858 }
/* GenericEmph */ .chroma .ge { font-style:italic }
/* GenericError */ .chroma .gr { color:#c55858 }
/* GenericHeading */ .chroma .gh { color:#8464c6;font-weight:bold }
/* GenericInserted */ .chroma .gi { color:#54c59f }
/* GenericStrong */ .chroma .gs { font-weight:bold }
/* GenericSubheading */ .chroma .gu { color:#8464c6;font-weight:bold }
/* GenericTraceback */ .chroma .gt { color:#c55858 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }

View File

@ -0,0 +1,74 @@
/* Generated using: hugo gen chromastyles --style=github */
/* Background */ .bg { background-color:#f7f7f7; }
/* PreWrapper */ .chroma { background-color:#f7f7f7;-webkit-text-size-adjust:none; }
/* Error */ .chroma .err { color:#f6f8fa;background-color:#82071e }
/* LineLink */ .chroma .lnlinks { outline:none;text-decoration:none;color:inherit }
/* LineTableTD */ .chroma .lntd { vertical-align:top;padding:0;margin:0;border:0; }
/* LineTable */ .chroma .lntable { border-spacing:0;padding:0;margin:0;border:0; }
/* LineHighlight */ .chroma .hl { background-color:#dedede }
/* LineNumbersTable */ .chroma .lnt { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* LineNumbers */ .chroma .ln { white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f }
/* Line */ .chroma .line { display:flex; }
/* Keyword */ .chroma .k { color:#cf222e }
/* KeywordConstant */ .chroma .kc { color:#cf222e }
/* KeywordDeclaration */ .chroma .kd { color:#cf222e }
/* KeywordNamespace */ .chroma .kn { color:#cf222e }
/* KeywordPseudo */ .chroma .kp { color:#cf222e }
/* KeywordReserved */ .chroma .kr { color:#cf222e }
/* KeywordType */ .chroma .kt { color:#cf222e }
/* NameAttribute */ .chroma .na { color:#1f2328 }
/* NameClass */ .chroma .nc { color:#1f2328 }
/* NameConstant */ .chroma .no { color:#0550ae }
/* NameDecorator */ .chroma .nd { color:#0550ae }
/* NameEntity */ .chroma .ni { color:#6639ba }
/* NameLabel */ .chroma .nl { color:#900;font-weight:bold }
/* NameNamespace */ .chroma .nn { color:#24292e }
/* NameOther */ .chroma .nx { color:#1f2328 }
/* NameTag */ .chroma .nt { color:#0550ae }
/* NameBuiltin */ .chroma .nb { color:#6639ba }
/* NameBuiltinPseudo */ .chroma .bp { color:#6a737d }
/* NameVariable */ .chroma .nv { color:#953800 }
/* NameVariableClass */ .chroma .vc { color:#953800 }
/* NameVariableGlobal */ .chroma .vg { color:#953800 }
/* NameVariableInstance */ .chroma .vi { color:#953800 }
/* NameVariableMagic */ .chroma .vm { color:#953800 }
/* NameFunction */ .chroma .nf { color:#6639ba }
/* NameFunctionMagic */ .chroma .fm { color:#6639ba }
/* LiteralString */ .chroma .s { color:#0a3069 }
/* LiteralStringAffix */ .chroma .sa { color:#0a3069 }
/* LiteralStringBacktick */ .chroma .sb { color:#0a3069 }
/* LiteralStringChar */ .chroma .sc { color:#0a3069 }
/* LiteralStringDelimiter */ .chroma .dl { color:#0a3069 }
/* LiteralStringDoc */ .chroma .sd { color:#0a3069 }
/* LiteralStringDouble */ .chroma .s2 { color:#0a3069 }
/* LiteralStringEscape */ .chroma .se { color:#0a3069 }
/* LiteralStringHeredoc */ .chroma .sh { color:#0a3069 }
/* LiteralStringInterpol */ .chroma .si { color:#0a3069 }
/* LiteralStringOther */ .chroma .sx { color:#0a3069 }
/* LiteralStringRegex */ .chroma .sr { color:#0a3069 }
/* LiteralStringSingle */ .chroma .s1 { color:#0a3069 }
/* LiteralStringSymbol */ .chroma .ss { color:#032f62 }
/* LiteralNumber */ .chroma .m { color:#0550ae }
/* LiteralNumberBin */ .chroma .mb { color:#0550ae }
/* LiteralNumberFloat */ .chroma .mf { color:#0550ae }
/* LiteralNumberHex */ .chroma .mh { color:#0550ae }
/* LiteralNumberInteger */ .chroma .mi { color:#0550ae }
/* LiteralNumberIntegerLong */ .chroma .il { color:#0550ae }
/* LiteralNumberOct */ .chroma .mo { color:#0550ae }
/* Operator */ .chroma .o { color:#0550ae }
/* OperatorWord */ .chroma .ow { color:#0550ae }
/* Punctuation */ .chroma .p { color:#1f2328 }
/* Comment */ .chroma .c { color:#57606a }
/* CommentHashbang */ .chroma .ch { color:#57606a }
/* CommentMultiline */ .chroma .cm { color:#57606a }
/* CommentSingle */ .chroma .c1 { color:#57606a }
/* CommentSpecial */ .chroma .cs { color:#57606a }
/* CommentPreproc */ .chroma .cp { color:#57606a }
/* CommentPreprocFile */ .chroma .cpf { color:#57606a }
/* GenericDeleted */ .chroma .gd { color:#82071e;background-color:#ffebe9 }
/* GenericEmph */ .chroma .ge { color:#1f2328 }
/* GenericInserted */ .chroma .gi { color:#116329;background-color:#dafbe1 }
/* GenericOutput */ .chroma .go { color:#1f2328 }
/* GenericUnderline */ .chroma .gl { text-decoration:underline }
/* TextWhitespace */ .chroma .w { color:#fff }

View File

@ -6,7 +6,9 @@ theme = 'hextra'
[markup]
[markup.highlight]
style = "github"
noClasses = false
style = "plaintext"
codeFences = false
[markup.goldmark.renderer]
unsafe = true
@ -17,13 +19,13 @@ theme = 'hextra'
target = "content/docs"
[params]
contentDir = "content/docs"
[params.theme]
customCSS = ["css/custom.css"]
contentDir = "content/docs"
[params.navbar]
displayTitle = true
[params.navbar.logo]
path = "images/logo.png"
link = "/"
link = "/"