On Wed, Apr 13, 2011 at 1:04 PM, asif saeed <asif.lse2@gmail.com> wrote:

I frequently come across the term "intrusive" in boost users mailing list. What does it mean? Would any of you please provide a reference such as an online reference/link, etc?

"Intrusive" refers to whether the client objects of a technique or container need to be altered to support the technique or be stored
in the container.

For example the STL containers, vector, list, map etc do not require any changes to the objects they
contain in order t place those objects in the containers. Those containers are non-intrusive.

An alternative is make changes to the object to support usage in a container, such as is done by the
boost intrusive containers.

Generally non-intrusiveness is to be preferred, since this does not require change to the object (which may
not be possible), and reduces coupling. However, intrusive containers generally offer the possibility of greater
implementation efficiency and better memory layout, so are sometimes (probably rarely) preferred.


- Rob.