I've been using boost for about a year now. I upgraded from 27 to
28 and appreciated the backwards compatability. But I'm wondering
if a slight modification to the directory structure is in order?
I have written a cross-platform class library. The library provides
high-level business objects and comes bundled with boost 1.28.0 to
provide support for threads, CRC, shared_ptr, and function (or
whatever else the end user might want).
Currently, users need to add two directories to their #include
search path:
include/boost
include/sb_library
Then, in their source code:
#include
#include
#include
Two problems (albeit very minor ones!)
1. Boost has two levels of includes (due to it's history of course).
2. Each library bundled with boost means another #include search
path needs to be added.
Proposed solution:
1. Create a single boost include directory instead of having the two
nested ones that there are now.
2. Put all boost headers into a sub-directory of boost
eg , . (It's a
small change for existing users to change their includes).
3. Place all src, documentation etc. into a directory within boost
called "private" or something.
Suggested directory structure:
--include // This is the only directory needed to be specified in
the #include search path
----other_library1
----other_library2
----boost
-------ptr
-------thread
-------private
----------documentation
----------src
----------thread
In other words, you will have and
but never .
I think it's worth breaking the backwards compatability a little in
order to bring the older boost headers in line with the directory
structure of the newer ones like thread. I also think enabling a
single include path for multiple libraries is useful.
Cheers
Simon