Like a person drawn into a drug addiction but deluding himself he's trying to quit and cut down, so am I drawn to using more and more of the Boost library. So, I like to lie to myself and pretend it's very little of Boost and I can quit anytime I like!
Seriously, though, occasionally I'm considering "hmm, should I use Boost for that? I know there's a header/library with a relevant name..." Now, what I want is to be able to tell myself "are you crazy? That means dragging in an incredible amount of heavy-template voodoo you really do not want dragging down your compiler."
So, how can I do that? Suppose I have either a boost construct (like a specific function or class), or perhaps a single boost file which I'm including - how can I tell "how much" including that file and/or using that construct drags in to my compilation process?
Obviously starting to browse the source is a way, but I would like something more automatic and coarse-grained, which can differentiate between "oh, this is nothing, 1-2 short files and the templates won't even get instantiated" and "expect massive pain, breakage when combining with CUDA, redundant functionality with the standard library" etc.