On 10/24/18 11:12 AM, Deniz Bahadir via Boost wrote: Answering as a library maintainer. The library I maintain is C++03 compatible. This is because that was the standard in existence when it written. As new standards come into existence, sometimes a problem comes up. This is usually because of something like: the a) library depends on undefined behavior. This library could not be written in such a way to avoid this. This includes working around optimizer dropping functions in release mode. These functions are necessary but are not explicitly named. b) some undefined behavior either gets defined or becomes undefined in a different way and one or more of the tests fails. Or some new feature is implemented. The current example is that visibility is now being supported. c) I go back and make an improvement. Currently I keep the improvement consistent with C++03. it's not hard to do. d) The library is still compatible with C++03, C++11, C++14 and likely C++17. So what should I, as a maintainer be doing differently? Of course if the library were be written today, it would save a lot of time and grief to just use the latest version. Number of lines of code would probably drop by 50% or more. But the library is not being written today, so this question is not relevant. Should the library have been designed differently so it would depend less on undefined behavior? Maybe. but the library is in wide use and it was required to support wide functionality in order to pass the boost review process. With the benefit of hind sight, a couple of features which complicated the design weren't necessary and not including those would make the library simpler and easier to maintain. But there aren't very many of such features. Pretty amazing given that the library was released 15 years ago. Since all this is in the past and not that big a deal - this question is not relevant Should the library be re-written to exploit the knowledge gained over the past 15 years and make it smaller and easier to maintain? Maybe, but no one has volunteered lately. I get a lot of suggestions though. So - I just don't see any of this discussion as being at all relevant to the maintainer of an old library. Now if it were somehow mandated that libraries are prohibited from being useful with versions of C++ earlier than C++11?, that would effect me as a library maintainer. I would likely have to insert one statement which fails to compile under earlier versions to fulfill this requirement. Sooooooo - I honestly can't see any this discussion is relevant to the present and future of boost - the subject line of the thread. Robert Ramey