[libcxx][span] Implement solution to LWG-3255
authorMichael Schellenberger Costa <mschellenbergercosta@googlemail.com>
Thu, 14 May 2020 14:50:03 +0000 (10:50 -0400)
committerLouis Dionne <ldionne@apple.com>
Thu, 14 May 2020 14:50:44 +0000 (10:50 -0400)
commitab9f11168f55add345f29592ec0946ac2e5ae697
tree9cb3ccb1ce5c3a7bfc5da99af91d83590f06f5b0
parentce4ebc14a8963e58f08a6ab6c5ce4096469d570d
[libcxx][span] Implement solution to LWG-3255

This implements the relaxed requirements on the std::array constructors of span,
where the type only needs to be convertible to the element type of the span.

Note that the previous tests were not sufficient, as the const array<T, n> constructor
was only tested for compile time and the array<T, N> only during runtime.

Restructure the tests so that we can test conversions as well as both constructors.

Differential Revision: https://reviews.llvm.org/D75706
libcxx/include/span
libcxx/test/std/containers/views/span.cons/stdarray.pass.cpp
libcxx/www/cxx2a_status.html