Boost logo

Boost :

From: Thorsten Ottosen (thorsten.ottosen_at_[hidden])
Date: 2007-06-21 05:22:14

Peter Dimov skrev:
> Thorsten Ottosen wrote:
>> Michael Marcin skrev:
>>> Thorsten Ottosen wrote:
>>>> I'll try to investigate this.
>>> I appreciate it.
>>> If you have things you'd like me to try out I can compile them and
>>> send you the mixed assembly output.
>>> One thing I noticed is that it seems to fail to eliminate the return
>>> value copy of the void_ptr_iterator::base call. Accessing iter_
>>> directly (unfortunately) produces much better code but still not the
>>> best.
>> I have tried playing a little with your example, eg. using operator[]
>> instead.
>> To my surprise, I could not eliminate the overhead with vc8 (/Ox /Og).
>> Thus the iterator wrapping seems to pay some penalty. This is quite
>> strange IMO.
> It's possible that the implementation in terms of vector<void*> is
> introducing too much abstraction for the compiler to handle. Have you
> considered simply using vector<T*> and leaving the void* folding to the
> standard library?


I certainly have considered this. I'm leaning somewhat towards it.

Going for void* introduced a number of imperfections in the library,
like algorithms as members.


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