Changes between Version 2 and Version 3 of BoostEvo


Ignore:
Timestamp:
Jun 5, 2014, 12:56:45 PM (8 years ago)
Author:
Beman Dawes
Comment:

Insert "maintainer" after "replacement" so the sentence makes sense.

Legend:

Unmodified
Added
Removed
Modified
  • BoostEvo

    v2 v3  
    1919
    2020* If a new C++ feature can be conditionally added (via #ifdef or a macro such as BOOST_NOEXCEPT), libraries may do so as soon as any implementation being regression tested supplies the feature. The more useful the feature is to the Boost library's users, the more strongly the library maintainer is encouraged to start conditionally using the feature.
    21 * If a new C++ feature cannot be added conditionally (for example, because it would cause breaking interface changes), maintainers may add a new version of the library that uses the new feature unconditionally, while continuing to support the old version. '''Maintainers may choose to seek a replacement for the old version of the library, of course.''' Because two versions of a library are painful to maintain and confusing to users, this approach is only encouraged when the advantages of using the new C++ feature would be of great benefit to library users. This is appropriate only when there is regression test coverage, for at least one implementation, of the new feature.
    22 * Once a C++ feature has been shipping by all major C++ implementers for several releases, Boost libraries may use the feature unconditionally and stop supporting older versions that do not provide the feature.. The maintainer of each Boost library must weigh the pros and cons of dropping support for older compilers and standard libraries, and consult users to gauge impact of such a change. Example: As of mid-2014, major compilers such as Clang, GCC, and Visual C++ have supported auto, decltype, nullptr, doubled right angle brackets, long long, r-value references, static assert, and built-in type traits for at least three major releases, so these C++11 features are among the first a Boost library might consider using unconditionally. If conditional support or two library versions do not cause an unwanted burden, maintainers are free to continue that approach into the future.
     21* If a new C++ feature cannot be added conditionally (for example, because it would cause breaking interface changes), maintainers may add a new version of the library that uses the new feature unconditionally, while continuing to support the old version. Maintainers may choose to seek a replacement maintainer for the old version of the library, of course. Because two versions of a library are painful to maintain and confusing to users, this approach is only encouraged when the advantages of using the new C++ feature would be of great benefit to library users. This is appropriate only when there is regression test coverage, for at least one implementation, of the new feature.
     22* Once a C++ feature has been shipping by all major C++ implementers for several releases, Boost libraries may use the feature unconditionally and stop supporting older versions that do not provide the feature. The maintainer of each Boost library must weigh the pros and cons of dropping support for older compilers and standard libraries, and consult users to gauge impact of such a change. Example: As of mid-2014, major compilers such as Clang, GCC, and Visual C++ have supported auto, decltype, nullptr, doubled right angle brackets, long long, r-value references, static assert, and built-in type traits for at least three major releases, so these C++11 features are among the first a Boost library might consider using unconditionally. If conditional support or two library versions do not cause an unwanted burden, maintainers are free to continue that approach into the future.
    2323
    2424=== New Boost libraries ===