Boost logo

Boost :

Subject: Re: [boost] [density] new library
From: Thijs (M.A.) van den Berg (thijs_at_[hidden])
Date: 2016-06-13 11:25:29

> On 13 Jun 2016, at 16:29, Larry Evans <cppljevans_at_[hidden]> wrote:
>> On 06/13/2016 06:31 AM, Thijs van den Berg wrote:
>> Hi Giuseppe,
>> I'm still hoping to see a strongly typed C++ heterogeneous container that
>> doesn't enforce base classes on elements,
> By "base class on elements" do you mean something like the
> multiple inheritance method as described in mitchnull's reply
> here:
> IOW, that method muliply inherits from
> TupleLeaf<I, TI>, for I=0...sizeof...(T)-1
> for:
> template<typename... T>
> class PseudoTuple
> ;
> If that's what you mean, then could you explain the disadvantage
> of this method vs some other method?

Hi Larry,

No not like that. I would think something different like this would add something to the table:

Which basicly splits a container into a set of single type subcontainers.

The benefits are:
* you don't enforce special properties on the elements -like having a shared base class- (I'm not saying that Giuseppe's does, but libraries shouldn't dictate what user code should look like if possible)

* the compiler can know the type of elements and hence It can use all sorts of compile time optimization. Eg I did and experiment with a set of shapes {square, circle} and operations like {move,rotate} on them. Rotating a circle was considered pointless and it's easy to eliminate that complete form the compiled code.

* there is no run time overhead of indirection, or type inspection.

Boost list run by bdawes at, gregod at, cpdaniel at, john at