Boost logo

Boost :

Subject: [boost] [dynamic_bitset] expression template?
From: Ben Coates (ben_at_[hidden])
Date: 2012-11-21 03:36:53


dynamic_bitset currently allocates temporary vectors for most
operations, and all the allocating and deallocating can easily
dominate the running time for a program that makes heavy use of them.
You can work around some of it with careful use of named temporaries
around loops but some operations like intersection of 3 sets ( (a & b
& c).any() ) result in a lot of unwanted copies and allocations.

I've had good results converting it to use expression templates for
intermediary operations, with the outcome of being able to do
arbitrary non-resizing operations without allocating. Is there any
interest in changing the boost version to do this?


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk