lumiera_documentation/tests/library/meta
Ichthyostega 95a9ceac35 clean-up: simplify function-closure -- avoiding std::function
A very performance relevant shortcoming of the existing implementation
of partial function closure is that the result is always wrapped into a
std::function, which typically causes a heap allocation when more than
a single pre-bound argument must be stored — which is annoying,
since the underlying Binder provides inline storage and thus
could be handled directly as a value object.

However, returning the Binder directly is also problematic, since
this object is outfitted with several overloaded function call operators,
which defeats most techniques to detect a function signature. Notably,
relevant down-stream metaprogramming code, like the tuple-closure used
in the `NodeBuilder` would break when being confronted directly with
a binder object.

An investigation shows that there is no direct remedy, short of
wrapping the binder into another functor. This can be accomplished
with a helper template, that generates a wrapper; however, this
wrapper builder must be supplied with explicit type information
regarding the function arguments (precisely because this type
signature can not be picked up from the Binder object itself)
2025-06-06 19:44:24 +02:00
..
access-casted-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
duck-detector-extension-test.cpp Library: shorten display of unsigned types 2024-11-22 22:02:45 +01:00
duck-detector-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
dummy-functions.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
function-closure-test.cpp clean-up: simplify function-closure -- avoiding std::function 2025-06-06 19:44:24 +02:00
function-composition-test.cpp clean-up: simplify function-closure -- enable forwarding and remove workarounds 2025-06-06 03:23:34 +02:00
function-erasure-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
function-signature-test.cpp Library: shorten display of unsigned types 2024-11-22 22:02:45 +01:00
generator-combinations-test.cpp clean-up: validate use of variadic seq with tuples and generators 2025-06-03 16:14:13 +02:00
generator-test.cpp clean-up: prepare for variadic Type-Sequences (see #987) 2025-06-02 03:24:44 +02:00
iterable-classification-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
late-bind-instance-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
meta-utils-test.cpp clean-up: the big anti-bang -- NullType becomes Nil 2025-06-02 17:46:40 +02:00
tuple-closure-test.cpp clean-up: simplify function-closure -- enable forwarding and remove workarounds 2025-06-06 03:23:34 +02:00
tuple-diagnostics.hpp clean-up: validate the typelist manipulations 2025-06-02 23:55:08 +02:00
tuple-helper-test.cpp clean-up: validate use of variadic seq with tuples and generators 2025-06-03 16:14:13 +02:00
tuple-record-init-test.cpp clean-up: validate use of variadic seq with tuples and generators 2025-06-03 16:14:13 +02:00
type-demangling-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
type-display-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
typelist-diagnostics.hpp clean-up: define variadic type-sequences independently 2025-06-04 03:21:18 +02:00
typelist-manip-test.cpp clean-up: simplify function-closure -- investigate BindToArgument 2025-06-05 18:00:05 +02:00
typelist-test.cpp clean-up: complement and modernise basic type-lists 2025-06-02 19:07:05 +02:00
typelist-util-test.cpp clean-up: complement and modernise basic type-lists 2025-06-02 19:07:05 +02:00
typeseq-manip-test.cpp clean-up: define variadic type-sequences independently 2025-06-04 03:21:18 +02:00
value-type-binding-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
variadic-argument-picker-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
variadic-helper-test.cpp Invocation: pave a way for more generic processing via ''type-sequence'' 2024-12-18 05:55:00 +01:00
virtual-copy-support-test.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00