Commit graph

12 commits

Author SHA1 Message Date
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
3caa5cfb03 Tests: reorganise test folders
This resolves a long-standing issue:
we could not use proper include paths for test-helper code that was defined alongside the tests.

Since some test-helper code must now be relocated into the »Vault«-Layer,
I took the opportunity to finally resolve this annoyance. The solution is two-fold
 * introduce a dedicated test-support library
 * remove the quirks that were necessary to support some plain-C tests
Together, this allows to raise the include-directory by one level,
and then to adjust all folder names so that they match the namespace
2026-03-07 00:56:19 +01:00
ada5cefaaf re-arrange tests according to layer structure
the buildsystem will now pick up and link
all test cases according to the layer, e.g.
backend tests will automatically be linked
against the backend + library solely.
2013-01-07 05:43:01 +01:00
2fce2b1c8d make ctor-tracking test::Dummy more widely usable 2011-11-25 22:05:12 +01:00
0a1256f4e3 cover and verify detaching from ScopedPtrVect 2011-11-19 21:41:50 +01:00
3f1b7651e9 GPL header whitespace 2010-12-17 23:28:49 +01:00
Stefan Kangas
661e4f0da5 Use CHECK instead of ASSERT in test suite. (Ticket #250) 2010-12-17 20:51:54 +01:00
3f8d82a13f Victory! bashed the iter-adapters and the ScopedPtrVect into submission, finally. 2009-07-17 20:22:48 +02:00
165cfc7fcd WIP allow some conversions, attempt to define the const_iterator properly 2009-07-17 04:13:14 +02:00
4f5fca6858 now able to implement ScopedPtrVect iteration properly 2009-07-16 19:36:01 +02:00
6ef1aca3a4 test driven brainstorming 2009-07-11 20:06:35 +02:00
e435822de6 Ouch.. boost::ptr_vector depends on boost-serialisation. Write a simple replacement... 2009-02-08 01:31:01 +01:00