Boost logo

Boost :

From: Sohail Somani (s.somani_at_[hidden])
Date: 2007-04-02 11:19:14


Oh gosh yes. Having things in headers because it makes it 'easier to compile' hurts compile times in the long run. Its just not good practice and I suspect a non-empty subset of new boost users are also new to C++.

The only executable code that should defined be in headers at all are templates (and even then, could possibly be split up into forward declarations and implementations) and inline functions. When I change implementation, I think "if I change this, how much recompilation is necessary?" If its more than just the immediate code, I double check. Even with templates, there are some things that can be moved to a separately compiled file.

But I suspect this wasn't your real question :-D

PS: Sorry for the TP. One day I will figure out "outlook web access"

-----Original Message-----
From: boost-bounces_at_[hidden] on behalf of Alexander Nasonov
Sent: Mon 4/2/2007 7:35 AM
To: boost_at_[hidden]
Subject: Re: [boost] [system] Why is this not header-only?
 
> I'd like to drop this custom class and instead use the ones provided
> by the recently introduced Boost.System. However, Boost.System is a
> binary library, while Boost.Process is currently a header-only
> library.

IIRC, someone asked recently why asio requires -lboost_system at link time.

In my personal opinion, C++ wrappers for OS services should not be header-only. I would prefer asio, process, shmem and the like to be all consistent with boost.filesystem. Opinions?


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