Bringing Boost.Array up to date?
I recently needed to make use of std::array in a constexpr context, and was rudely informed by the compilers that a lot of its features are only constexpr in C++17 (non-const access) or even C++20 (operator==). This makes the standard std::array not very useful in C++14 constexpr code. Ordinarily, the way we deal with such problems is to shadow the standard component in Boost.Compat and backport all features introduced in later standards. But in this specific case, we already have boost::array, and it makes no sense to introduce another one. boost::array, however, looks mostly abandoned. The thinking there was probably that it's rendered entirely obsolete by std::array, and that no further development is warranted or required. But as outlined above, this is not the case; there's still value in maintaining boost::array and keeping it up to date. I'd like to do something about that. If Array's current maintainer, Marshall, agrees, I'd like to take over the maintenance of Boost.Array and do the usual thing - port the documentation to AsciiDoc, expand the test suite, add the necessary BOOST_CONSTEXPR/BOOST_CXX14_CONSTEXPR annotations, add the features introduced by later standards such as deduction guides and to_array, deprecate/remove the nonstandard parts of boost::array that are no longer relevant in 2024, and so on. Comments?
On Nov 5, 2024, at 11:42 AM, Peter Dimov via Boost
I recently needed to make use of std::array in a constexpr context, and was rudely informed by the compilers that a lot of its features are only constexpr in C++17 (non-const access) or even C++20 (operator==).
This makes the standard std::array not very useful in C++14 constexpr code.
Ordinarily, the way we deal with such problems is to shadow the standard component in Boost.Compat and backport all features introduced in later standards. But in this specific case, we already have boost::array, and it makes no sense to introduce another one.
boost::array, however, looks mostly abandoned. The thinking there was probably that it's rendered entirely obsolete by std::array, and that no further development is warranted or required. But as outlined above, this is not the case; there's still value in maintaining boost::array and keeping it up to date.
I'd like to do something about that. If Array's current maintainer, Marshall, agrees, I'd like to take over the maintenance of Boost.Array and do the usual thing - port the documentation to AsciiDoc, expand the test suite, add the necessary BOOST_CONSTEXPR/BOOST_CXX14_CONSTEXPR annotations, add the features introduced by later standards such as deduction guides and to_array, deprecate/remove the nonstandard parts of boost::array that are no longer relevant in 2024, and so on.
I have no objection to this. — Marshall
participants (2)
-
Marshall Clow
-
Peter Dimov