
Jonathan Wakely wrote:
Hi,
The libstdc++ developers are starting to implement the library extensions from TR1, including Boost-like smart ptrs, regex etc. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1687.pdf
I have volunteered to look into modifying the Boost smart pointers to match the TR1 specs and the libstdc++ coding standards.
I realise I can modify the files and include them under the terms of the Boost licence, but the last Boost code to be used in libstdc++ (the concept checks) were licensed under the GPL. I believe that was something Jeremy Siek (as copyright holder) allowed specially: http://gcc.gnu.org/ml/libstdc++/2001-04/msg00050.html
Would the SmartPtr authors (Peter, Greg, Beman, Daniel, Howard, Multi Media Ltd ...) consider allowing modified versions of shared_ptr.hpp, weak_ptr.hpp, shared_count.hpp and (maybe) checked_delete.hpp to be included in the GCC sources? It would probably require licensing them as GPL, which is where I imagine some people might have reservations. That wouldn't affect the copies in the Boost tree, of course.
Allowing this would greatly speed up the process of adding TR1 features to libstdc++ and tracking the draft TR as it evolves. I am prepared to rewrite the smart pointers without using Boost code if necessary, but would obviously prefer not to, when the Boost implementations are the reference ones that were used for the TR1.
I eagerly await responses, as whether I have to rewrite the classes or not will have quite an impact on my free time :-)
I (Peter Dimov, also speaking on behalf of Multi Media Ltd) hereby grant you permission to use my contributions to Boost in the TR1 implementation in libstdc++. But legalese aside, the most important part of the implementation are the tests, anyway. ;-) Rewriting shared_ptr isn't that hard, really, once you know what to aim for.