lumiera_documentation/src/lib
Ichthyostega a0d83b4fe8 Library: investigate design for an opaque inline functor
This is a design study to find out what would be required
to build an opaque function wrapper, similar to `std::function`,
yet without using any heap memory ever.

Such a building block would allow for some interesting options
for a well structured design of elaborate data structures.

This changeset provides an implementation draft.

__Two important findings to note__:
 * it is impossible to get away with just a single function pointer
 * because at the very least we need to invoke the destructor of the
   embedded delegate. Thus something akin to a "manager" is required.
 * this implies that the component would not be so efficient as I hoped,
   since it requires two pointers and requires to emit code for each
   type of delegate.
 * by making the component **NonCopyable**, I avoided the complexities
   of virtual copy support. In case the latter is desired, it would be
   much simpler to switch to a classical OO approach with a VTable
   and use our `PolymorphicValue` wrapper to handle copy and cloning.
2026-04-08 01:53:53 +02:00
..
diff Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
idi Upgrade: simplify comparisons 2025-07-04 03:37:54 +02:00
meta Library: investigate design for an opaque inline functor 2026-04-08 01:53:53 +02:00
stat Library: integrate automatic adapters to flatten iterable sources 2026-03-28 23:27:23 +01:00
time clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
access-casted-o.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
access-casted.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
allocation-cluster.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
allocation-cluster.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
allocator-handle.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
binary-search.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
branch-case.hpp Library: demonstrate »the« textbook example 2025-01-28 20:23:28 +01:00
builder-qualifier-support.hpp BufferProvider: prototyping for a proxy-BufferProvider 2026-02-22 00:30:45 +01:00
call-queue.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
cmdline.cpp clean-up: trifles 2025-06-07 23:59:57 +02:00
cmdline.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
del-stash.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
depend-inject.hpp Library: further clean-up of type definitions related to iterators 2026-03-26 23:39:02 +01:00
depend.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
diagnostic-context.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
DIR_INFO
dot-gen.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
element-tracker.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
error-exception.cpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
error-state.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
error.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
error.hpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
file.cpp Clean-up: get rid of boost::filesystem 2025-04-27 23:54:21 +02:00
file.hpp Clean-up: get rid of boost::filesystem 2025-04-27 23:54:21 +02:00
format-cout.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
format-obj.cpp Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
format-obj.hpp Library: deep dive into type reconciliation and tuple handling 2026-04-07 06:32:23 +02:00
format-string.cpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
format-string.hpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
format-util.hpp Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
frameid.hpp Upgrade: simplify comparisons 2025-07-04 03:37:54 +02:00
fun-hash-dispatch.hpp Invocation: define aspects of ProcID to cover 2025-01-11 17:05:53 +01:00
gnuplot-gen.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
gnuplot-gen.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
handle.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
hash-combine.hpp Upgrade: improve Doxygen parameters and treat some warnings 2025-04-27 05:00:14 +02:00
hash-indexed.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
hash-standard.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
hash-value.h Invocation: change TestFrame to use a dedicated header 2024-11-19 01:05:56 +01:00
hetero-data.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
incidence-count.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
index-iter.hpp Library: streamline value-type bindings 2026-03-26 00:46:43 +01:00
integral.hpp Upgrade: improve Doxygen parameters and treat some warnings 2025-04-27 05:00:14 +02:00
ios-savepoint.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
item-wrapper.hpp Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
iter-adapter-ptr-deref.hpp Library: further clean-up of type definitions related to iterators 2026-03-26 23:39:02 +01:00
iter-adapter-stl.hpp Library: a stricter criterion for Lumiera iterators 2026-03-26 19:08:54 +01:00
iter-adapter.hpp Library: deep dive into type reconciliation and tuple handling 2026-04-07 06:32:23 +02:00
iter-chain-search.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
iter-cursor.hpp Library: prepare two wrapper-helpers to cover corner cases 2026-03-28 18:09:24 +01:00
iter-explorer.hpp Library: deep dive into type reconciliation and tuple handling 2026-04-07 06:32:23 +02:00
iter-source.hpp Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
iter-stack.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
iter-zip.hpp Library: integrate automatic adapters to flatten iterable sources 2026-03-28 23:27:23 +01:00
itertools.hpp Library: investigate further ramifications and clean-up Itertools 2026-04-01 01:49:36 +02:00
lazy-init.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
lifecycle.cpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
lifecycleregistry.hpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
linked-elements.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
llist.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
lockerror.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
lockerror.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
luid.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
luid.h Upgrade: improve Doxygen parameters and treat some warnings 2025-04-27 05:00:14 +02:00
multifact.hpp clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
mutex.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
mutex.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
nobug-init.cpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
nobug-init.hpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
nocopy.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
null-value.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
opaque-holder.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
optional-ref.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
p.hpp Upgrade: switch to C++23 (see #1245) 2025-06-19 01:52:55 +02:00
parse.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
path-array.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
polymorphic-value.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
ppmpl.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
psplay.c clean-up: trifles 2025-06-07 23:59:57 +02:00
psplay.h clean-up: trifles 2025-06-07 23:59:57 +02:00
query-diagnostics.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
query-text.cpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
query-text.hpp Upgrade: simplify comparisons 2025-07-04 03:37:54 +02:00
query-util.cpp clean-up: trifles 2025-06-07 23:59:57 +02:00
query-util.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
random-draw.hpp clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
random-reseed.cpp Library: ensure automatic re-seeding for TestFrame 2026-02-23 00:05:44 +01:00
random-reseed.hpp Library: ensure automatic re-seeding for TestFrame 2026-02-23 00:05:44 +01:00
random.cpp Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
random.hpp Tests: build an link a test-support library 2026-03-06 23:16:32 +01:00
rational.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
recmutex.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
recmutex.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
regex.hpp Library: suppress leading whitespace automatically 2025-01-18 22:25:03 +01:00
result.hpp Upgrade: simplify Either-type 2025-07-04 21:27:50 +02:00
safeclib.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
safeclib.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
scoped-collection.hpp BufferProvider: simplify OutputSlot implementation structure 2026-03-14 03:36:15 +01:00
scoped-ptrvect.hpp clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
searchpath.cpp clean-up: trifles 2025-06-07 23:59:57 +02:00
searchpath.hpp Clean-up: reimplement the SeachPathSplitter 2025-04-28 19:14:27 +02:00
sectionlock.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
several-builder.hpp BufferProvider: research how to build a policy with callbacks 2026-02-26 02:20:51 +01:00
several.hpp Library: streamline value-type bindings 2026-03-26 00:46:43 +01:00
split-splice.hpp clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
symbol-impl.cpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
symbol-table.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
symbol.hpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
sync-barrier.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
sync-classlock.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
sync.hpp Application: Adjustments to the Layer structure 2026-03-03 22:16:09 +01:00
text-template-gen-node-binding.hpp clean-up: some Doxygen improvements 2025-11-05 02:55:45 +01:00
text-template.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
thread.cpp Upgrade: improve Doxygen parameters and treat some warnings 2025-04-27 05:00:14 +02:00
thread.hpp BufferProvider: research how to build a policy with callbacks 2026-02-26 02:20:51 +01:00
tmpbuf.c Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
tmpbuf.h Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
typed-allocation-manager.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
typed-counter.hpp Upgrade: Literal can be constexpr 2025-07-02 22:18:39 +02:00
uninitialised-storage.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
unique-malloc-owner.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
util-coll.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
util-foreach.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
util-quant.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
util-tuple.hpp Upgrade: improve Doxygen parameters and treat some warnings 2025-04-27 05:00:14 +02:00
util.cpp clean-up: trifles 2025-06-07 23:59:57 +02:00
util.hpp OutputSlot: fill in the tracking implementation 2026-03-24 23:19:05 +01:00
variant-o.hpp Copyright: clarify and simplify the file headers 2024-11-17 23:42:55 +01:00
variant.hpp Library: further clean-up of type definitions related to iterators 2026-03-26 23:39:02 +01:00
verb-token.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
verb-visitor.hpp clean-up: update links embedded into API-doc (Doxygen) 2025-09-19 19:51:28 +02:00
visitor-dispatcher.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
visitor-policies.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
visitor.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
wrapper-function-result.hpp Upgrade: down with typename!! 2025-07-06 01:19:08 +02:00
wrapperptr.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00
zombie-check.hpp clean-up: trifles 2025-06-07 23:59:57 +02:00