lumiera_/research
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
..
clang-static-init-1.cpp BUG: Clang shows a problem when accessing templated static variable through separate compilation units 2013-10-06 23:17:18 +02:00
clang-static-init-2.cpp bughunt: re-create the whole 2nd layer with a configurable product type --> HIT 2013-10-06 23:17:18 +02:00
clang-static-init.hpp BUG: Clang shows a problem when accessing templated static variable through separate compilation units 2013-10-06 23:17:18 +02:00
crash_gdb_jessie-2015-08.sh investigation: Segfault in GDB (IV) (related to #946) 2015-08-16 01:17:35 +02:00
DIR_INFO SCons: new build target for experimental code 2011-12-03 06:10:12 +01:00
gtk-canvas-experiment.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
gtk-canvas-experiment.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
gtk-canvas-main.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
gtk-style-experiment.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
gtk-style-experiment.css Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
SConscript Investigation: install a custom stylesheet 2019-08-01 00:48:04 +02:00
try.cpp clean-up: simplify function-closure -- avoiding std::function 2025-06-06 19:44:24 +02:00