Let me also add this -- sounds reasonable?"> Does boost have a spec (document) where it mentions which new language features in C++11 are permitted to be used in new libraries?No, because the answer is that any C++11 feature can be used in newlibraries, and in old libraries too.The critical issue is support for compilers that don't supply aparticular shinny new feature. Today most Boost developers are tryingto support all compilers that (except for export) are C++03 compliant.A howl would likely go up from reviewers if someone submitted alibrary that didn't work on C++03 compilers.Even that isn't absolute. If a library's sole purpose was to supportor ease the use of some C++11 feature, then it might well not work oncompilers that don't supply that feature.Boost has a bunch of feature macros in the config library to identifywhich compilers have various C++11 features."// http://lists.boost.org/Archives/boost/2 ... 5839.phpIn
other words -- if you can ensure support for a C++03-compliant compiler, using Boost config library macros (or an equivalent construct, but please avoid reinventing the wheel) to identify it and graciously fall back on a C++03-compliant implementation, then fine. Some libs from Boost do this for us, like the above-mentioned static-assert -- IMHO a preference should be given to those Boost libs in such cases, so as to avoid reinventing the wheel and dealing with compliance workarounds ourselves.Otherwise (if the lib itself is C++11-specific, for instance), it's subject to a case-by-case review by the community.The above is subject to change based on the degree of C++2011-compliant implementations availability and mainstream adoption.From Portability requirements:There is no requirement that a library run on C++ compilers which do not conform to the ISO standard.There is no requirement that a library run on any particular C++ compiler. Boost contributors often try to ensure their libraries work with popular compilers. The boost/config.hpp configuration header is the preferred mechanism for working around compiler deficiencies.In particular, see Macros that describe C++0x features not supportedFor reference, there's also been a (quite extensive) discussion before: http://lists.boost.org/Archives/boost/2 ... 2.phpSince
we're likely to have dependencies on Boost, a minimal supported implementation would be as in Supported compilers and platforms. Since we're a much smaller community and don't have the resources to test on as many platforms, by minimal I mean minimal, as in: no support guarantees whatsoever for anything older than the compilers on the Boost list.