
2009/4/7 <joaquin@tid.es>:
Hi,
Looks like a sensible part of Boost.Threads, namely that dealing with mutexes and locks, would be header-only but for its relying on boost/thread/exceptions.hpp, whose implementation is located at /libs/thread/*/exceptions.cpp.
Given that this .cpp mostly consists of extremely simple definitions (as simple as do-nothing functions in many cases), would it make sense to move this to inline definitions in boost/thread/exceptions.hpp thus making mutexes and locks header-only? This would greatly enhance the appeal of this part of Boost.Threads, as having to link a separate module is a considerable burden.
General Objection: Putting code which doesn't have to into header files causes binary code size bloat and make code harder to read. IMHO only interfaces belong into headers. Unfortunately C++ templates and inline functions have reside in header files as well, so be it. I'm not a VisualStudio user. so I cannot speak for them, but a reasonable build system, like cmake, eleminates this "burden". my 2 cent, -- Maik