
I'm asking about all of your Boost.TR1, including shared_ptr etc., not just the math part.
There is no duplication of code, it's described here: http://freespace.virgin.net/boost.regex/tr1/doc/html/tr1/implementation.html But basically: "When Boost.TR1 is configured to make use of your standard library's native TR1 implementation, then it doesn't do very much: it just includes the appropriate header. When Boost.TR1 is using the Boost implementation of a particular component, then it includes the appropriate Boost header(s) and imports the necessary declarations in namespace std::tr1 with using declarations. Note that only those declarations that are part of the standard are imported: the implementation is deliberately quite strict about not including any Boost-specific extensions in namespace std::tr1, in order to catch any portability errors in user code. If you really need to use Boost-specific extensions then you should include the Boost headers directly and use the declarations in namespace boost:: instead. Note that this style of implementation is not completely standards-conforming, in particular it is not possible to add user-defined template specializations of TR1 components into namespace std::tr1. There are also one or two Boost libraries that are not yet fully standards conforming, any such non-conformities are documented in the section called "TR1 By Subject". Hopefully, occurrences of non-standard behavior should be extremely rare in practice however." Clear now ? John.