And kill projects that target older C++03 platforms? Don't maintain, update or improve, but remove?
If somebody wants some smart pointer that is consistent across compiler versions that boost ones are a very good case.
Be responsible to ones who use your code. Don't break it unless it is absolutely necessary
In my opinion, yes. Let's start from a point: nobody wil kill C++03 code on older platforms and with older compilers: it will continue to work properly with existing boost versions. Simply, the old code will not be able to use, at some point, the latest boost version, and that's also ok, since new boost releases will use code more modern than C++03, so simply upgrading the library will break the old code. My idea, as I've said, is to deprecate old libraries at some point, remove them later in a future version, and maintain old boost version for bugfixing. It's something that many other libraries do. At some point, for avoiding the boilerplate of the library/framework, some deprecated features must be removed, and there will be some API break. Even C++ did it with auto_ptr, for example, why boost should not do it? Why boost should rely to a bunch of configuration macros for writing and maintaining code that can be developed in a much cleaner way? More important, Boost already did it: in version 1.31 Compose library was deprecated, and in 1.32 was removed. Single libraries had breaking changes during their history, like Spirit. I'm simply saying that for maintaining the code, and making development of new libraries easier we should start to think about cleaning the actual code base a bit. But it's something that every project must do, at same point. And I will repeat again, this does not imply that old code will break. Simply old code, developed with a specific version of boost, cannot be compiled with a more recent version of it. It the developer find some boost bug, it's always possible to create a patch release, if the boost version that it uses is more recent than the last supported one in my proposal. If your code uses a really old boost version, maybe it's not possible to upgrade to last version for free, but it happens also for all other libraries, and for compilers too. So I don't think that with this we'll break code, and I've said clearly that smart pointers were only an example and not a real candidate for a library that needs to be removed, this is something that the community should decide. But I'm convinced that sooner or later this work should be done, and in my experience sooner is better than later. Regards Daniele Lupo