Greetings,

As a veteran C++ programmer, I've been an admirer of the Boost library for many years.  I've used it at a number of companies I've worked for, especially the SmartPtr library.

 

Right now I'm working for a company that worries a lot about negative exposure to Open Source software issues such as questions that might arise about authorship, copyright or even patent issues.  The company does allow the use of Open Source software, but it requires that each piece of code that is brought in first be justified and vetted.  Unfortunately, I'm finding this to be a nearly impossible task when I look at the amount of code that must be compiled to use the Boost modules I'm interested in.

 

I've done a study and written some tools, to determine just how many Boost header files must be included to use some of the Boost modules.  The numbers are staggering:

 

   Any: 79

   FileSystem: 276

   Smart Ptr: 382

   String Algo: 180

 

I went on and did a tally of which modules these header files came from.  Here are the counts for how many other Boost modules each of these modules depends upon:

 

   Any: 8

   FileSystem: 13

   SmartPtr: 8

   String Algo: 15

 

Given these numbers, I think I have to abandon any thoughts of using Boost within my current company.  There's no way I'm going to get approval to bring so much code into our work just to get a SmartPtr or FIleSystem library.  This is unfortunate, because due to Boost's existence there doesn't seem to be much work going on out there to offer lighter weight alternatives.

 

I'm writing this request in the hopes that there's something I'm missing here, and that someone can point out my folly.  Is there a way to utilize any of these Boost modules in such a way that they do not require the inclusion of so much code?  If not, does anyone have any suggestions as to how to make this fly with my boss?  Has this issue come up before and been considered by the Boost designers?  I find the issue baffling.

 

TIA for any help or insight anyone can provide.

 

Steve