Commit graph

19 commits

Author SHA1 Message Date
c65c5f812b Library: put the new type rebinding trait into general use
Obsoletes and replaces the ad-hoc written type rebindings from
iter-adapter and friends. The new scheme is more consistent and does
less magic, which necessitates an additional remove_pointer<IT> within
the iterator adaptors. Rationale is, "pointer" is treated now just as
a primitive type without additional magic or unwrapping, since it is
impossible to tell generically if the pointer or the pointee was
meant to be the "value"
2017-12-02 02:51:51 +01:00
70e1a5b922 convert ScopedCollection to rely on C++11
- variadic templates
- type traits
- use uniqe_ptr to manage storage (instead of boost::scoped_array)
2017-08-06 18:21:25 +02:00
0b621e71c5 Library: fix a suptle misconception in the design of IterAdapter
again surprising how such fundamental bugs can hide for years...

Here the reason is that IterAdapter leaves the representation of "NIL" to
its instantiation / users; some users (here in for example the ScopedCollection)
can choose to allow for different representations of "NIL", but the comparison
provided by IterAdapter just compares the embedded pos by face value.
2017-08-06 16:58:22 +02:00
d2e7e1e06d idea how to crack the (daunting) problem regarding mutator storage
basically we'll establish a collaboration where both sides
know only the interface (contract) of the partner; a safe margin
for allocation size has to be established through metaprogramming (TODO)
2016-03-06 02:26:42 +01:00
5e16431b44 fix a long standing Heisenbug in ScopedCollection_test
...other than intended, the bomb did explode on random occasions,
with an probability of about 4% (when rr >= 96).

Btw, there was also the mistake to throw an heap allocated
object by pointer. Damn Java habits.
2016-01-08 00:10:43 +01:00
cb80d4001a Clang(#928): refactor OutputSlot implementation to resolve a scoping problem
Clang is more insistent when it comes to enforcing 'protected' visibility.
Since in this case the basic design can be considered sane and optimal, the
only (and obvious) solution is to nest the PIMPL into a default base class
for implementation; this mirrors the structure of the interface.
2013-09-27 23:25:51 +02:00
378ebe21f0 Fix naming of Iteration control API functions (closes #410)
comes in handy now, since IterStateWrapper uses a similar API
2012-10-10 05:20:15 +02:00
ddff8b654b WIP investigating the relation of Jobs, JobTicket and Closure in detail 2012-10-10 05:20:14 +02:00
0b25c2e08d Fix: missing sanity check in ScopedCollection
funny enough this possible memory corruption
didn't happen in the unit test, because my
compiler optimised the additional int field
of class SubDummy, making it the same size
of the baseclass. Now matters should be safe.
2012-10-10 05:20:12 +02:00
5cc034d26b refactor ScopedCollection to use an init() function 2012-01-07 04:44:48 +01:00
e6888f7b83 supplement direct support for populating by member function
this turns out to be the typical usage scenario
for ScopedCollection: a manager object owning
the collection will populate it with specially
crafted components and invoke a member function
for creating the individual components.

This shortcut avoids using tr1::bind alltogether
2012-01-07 04:11:39 +01:00
e41065101a switch OutputSlot to use the ScopedCollection
..hehe, makes the code way more sane
2012-01-06 03:16:22 +01:00
e5c42e05e6 finish ScopedCollection (closes #877) 2012-01-05 23:17:16 +01:00
72e8d22454 implement the RAII-style collection ctor. test pass 2012-01-05 03:40:04 +01:00
434a371c33 take ctor args by value; test attaching sub-types passes 2012-01-04 04:28:14 +01:00
690304f9bc get the simple and iteration unit tests to pass 2012-01-04 04:05:03 +01:00
fa5e7db2d3 WIP rewrite iteration-control logic... 2012-01-03 02:50:22 +01:00
6c01579a26 WIP draft implementation of ScopedCollection 2012-01-02 06:11:27 +01:00
e63fa6d646 Test-driven brainstorming: draft a ScopedCollection #877 2012-01-01 06:20:42 +01:00