|
Boost : |
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2019-06-17 14:45:00
On 17/06/2019 15:40, Hans Dembinski wrote:
> Dear degski and Niall,
>
>> On 17. Jun 2019, at 14:24, Niall Douglas via Boost <boost_at_[hidden]> wrote:
>>
>>> Save yourself the trouble and just fork and maintain
>>> https://github.com/tcbrindle/span . It's already released under BSL-1.0, so
>>> no problems there either. Then there's another one,
>>> https://github.com/martinmoene/span-lite, equally BSL-1.0. It appears
>>> std::mdspan is slightly more of a challenge.
>>
>> +1. They're Boost licensed, and Boost friendly authors to boot.
>
> thank you for the pointers. I will check their implementations. Do you know why were these not proposed/accepted for inclusion in Boost?
Almost certainly because they lack the time, patience, and fortitude of
will. But you'd have to ask them.
>> I personally use span-lite. It works well on C++ 98, incidentally.
>
> In C++ 98 and without decltype and declval, it is more difficult to restrict the overloads of the templated constructors of span, I have to see how they do that.
I've fired it into C++ 98 codebases and it "just worked". I don't doubt
there will be some corner case gotchas.
>> In any case, implementation is easy, it'll be the documentation which is
>> hard, as always.
>
> For a clone of std::span, one can base the documentation on cppreference.com, which is better than developing from scratch.
I suspect the tutorial will be the most painful part. Like, when and why
to use string_view vs span vs iterator pairs vs range vs pointers?
Niall
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk