Glen Fernandes wrote:
On Fri, May 30, 2014 at 9:02 AM, Peter Dimov
wrote: exception: adds smart_ptr adds tuple
This was the most surprising to me. I assumed, and now really desire, exception to not have any other dependencies.
It's a false dependency. 'exception' only depends on 'tuple' if you include one specific header. (I think that Emil was considering its removal.) In addition, we only use throw_exception.hpp, which actually doesn't even need 'exception'; it's (almost) self-contained. It could be extracted into its own 'throw_exception' module. Neil Groves wrote:
I'm not sure this report is giving an accurate representation of the true dependencies of smart_ptr.
It contains a lot of false dependencies that are brought in because module X needs Y1.hpp in module Y, which also contains Y2.hpp, which needs Z, which is not needed by X. But that is just how module-level dependencies work. If we adopt the simple scheme of specifying dependencies on a module basis, X will list Y and Y will list Z, and we'll get the result I posted. I could have built the transitive closure of the actual #includes, and it would have given a different result, but that's not what I'm emulating.