- Which library/ies are you maintaining? (I assume this isn't some sort of private information - otherwise ignore the question)
Too many ;) Math, Multiprecision, Regex, Type_traits, Config
- Would you like to unconditionally use c++11 features if you would not have to worry about this breaking boost internal users?
Multiprecision: Builds with 03, but already makes fairly heavy C++11 use, and C++11 or later is really required for full functionality. C++03 support requires little maintenance other than some #ifdef's for rvalue refs etc. Fairly heavy use of noexcept is also used, but IMO this is an untestable abomination anyway. Generalised constexpr in C++14 is more useful than C++11, along with really robust SFINAE and enable_if support (in theory this is C++11-ish, but there are many early C++11 compilers which choke on the code, along with more recent C++03 compilers which handle things fine). Math: historically needs nothing that isn't in C++03. Constexpr support has been gradually added to parts of the library, but is easy to macro-ise around. Recently, some new components have been added which are more like C++14 as they really need generalised lambdas to work well. The nicest feature to have would be constexpr-if, but that's C++17. TypeTraits: All the old C++98 cruft is still there, I don't intend to ever change it, and if someone files a bug against say VC7.1, the answer will be "upgrade your compiler". There are C++11,14 and 17 isms throughout added to support newer features in new compilers. Many traits only work correctly post C++11. The whole thing could probably be greatly simplified post C++11, but I don't see much gain from going through and ripping out the old code. For folks that want to read the source, I try to keep the "modern"/conforming implementation first in the file, at least in new code. Regex: was obviously designed when C++98 was still being formulated ;) Rvalue refs are the only C++11 feature that's nice to have, other things like C++17's string_view support will gradually get added in time no doubt.
- Would you like to unconditionally use c++11 features if you would not have to worry about this breaking any users?
Not especially, though I dare say I would just to save a few #ifdef's in new code.
- Would you deprecate your library completely if there were no boost-internal users and your current dependencies required c++11 (e.g. because your library has been merged into the c++11 standard library anyway)
No. While regex is in the std, I believe Boost.Regex continues to offer useful enhancements. Type_traits is an interesting one - if people stop using it, then deprecation might be an option.
- Are you yourself using any boost library (in an up-to-date version) in a c++03, non-boost project?
No.
- Do you have any Idea if the latest versions of your library is used by any important/significant number of c++02 projects? [It is only important if *you* consider those projects important and or the number significant]
No. Generally I get more bug reports relating to very recent C++ versions that I haven't quite caught up with yet. Of course these are mature libraries, so the C++03 side of things should be pretty stable. HTH, John. --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus