Sure it works.
It depends how you design your interfaces. If you consequently use boost in cpp files only and declare in a header a pointer to a pImpl object, that works very well (with Visual Studio as well). Robert, I would suggest for you to take a look in the book: Large-Scale C++ Software Design by John Lakos. There he explains all that idioms and how to organize projects for better compilation speed. And much more other things.

http://www.amazon.com/Large-Scale-Software-Addison-Wesley-Professional-Computing/dp/0201633620/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1240821340&sr=8-1

I did it many times in my projects and it always worked well.

Additional articles by Herb Sutter can be of help:

http://www.gotw.ca/gotw/024.htm
http://www.gotw.ca/gotw/007.htm


Regards,
Ovanes

On Mon, Apr 27, 2009 at 12:32 AM, Igor R <boost.lists@gmail.com> wrote:
> One possible solution would be to use pImpl idiom and use boost in cpp files
> via the forward declartion. This might work in conjunction by splitting one
> big project in producing multiple libs or shared objects (dlls) and link
> against binaries with slim headers.

The problem is that such an approach doesn't work if a project
contains a lot of class templates, which in turn use boost.
MSVC9 has /MP switch that enables "build with multiple processes", but
it's very limited, as it conflicts with /Gm (enable minimal rebuilds)
and some other options...