This patch is a 'pragmatic pimpl-ing' of BufferParams. It moves into Impl only 
those member variables that currently drag in header files into 
bufferparams.h.

I had two choices when implementing it.
* Explicitly define a copy constructor and assignment operator for 
BufferParams.
* Define a smart pointer with copy semantics.

I chose the latter approach, defining a cow_ptr with copy-on-write semantics. 
It uses boost::shared_ptr to store the data and so was trivial to implement.

We could later use cow_ptr as a direct replacement of math_atom, f.ex.

What do you think? Ok to apply?

-- 
Angus

Attachment: bufferparams_pimpl.diff.bz2
Description: BZip2 compressed data

Reply via email to