Date: Tue, 17 Oct 2023 11:41:08 +0800

Hi fellow experts,

I wrote a paper based on this thread:

https://htmlpreview.github.io/?https://github.com/hewillk/mdspan-ctad/blob/main/mdspan-ctad.html

It is still in the draft stage so there may be parts that need to be

considered. Any comments are welcome.

Hewill

Hewill Kang <hewillk_at_[hidden]> 於 2023年10月5日 週四 下午3:21寫道：

> Hi fellow experts

>

> I initially thought that

>

> mdspan ms(ptr, integral_constant<size_t, 2>{}, integral_constant<size_t, 6>{});

>

> would be deduced into mdspan<int, extents<size_t, 2, 6>>. However, as the

> current wording ([mdspan.mdspan.overview]

> <https://eel.is/c++draft/mdspan.mdspan.overview>), it is just mdspan<int,

> extents<size_t, dynamic_extent, dynamic_extent>>

>

> template<class ElementType, class... Integrals>

> requires((is_convertible_v<Integrals, size_t> && ...) && sizeof...(Integrals) > 0)

> explicit mdspan(ElementType*, Integrals...)

> -> mdspan<ElementType, dextents<size_t, sizeof...(Integrals)>>;

>

> I wonder, is it a more appropriate choice to set the corresponding extents's

> static values based on whether Integrals... is integral_constant? For

> example

>

> mdspan ms(ptr, integral_constant<size_t, 2>{},

> integral_constant<size_t, 3>{},

> 4,

> integral_constant<size_t, 5>{});

>

> which will be deduced as mdspan<int, extents<size_t, 2, 3,

> dynamic_extent, 5>>.

>

> What do you guys think? Could this be considered an improvement?

>

> Hewill

>

I wrote a paper based on this thread:

https://htmlpreview.github.io/?https://github.com/hewillk/mdspan-ctad/blob/main/mdspan-ctad.html

It is still in the draft stage so there may be parts that need to be

considered. Any comments are welcome.

Hewill

Hewill Kang <hewillk_at_[hidden]> 於 2023年10月5日 週四 下午3:21寫道：

> Hi fellow experts

>

> I initially thought that

>

> mdspan ms(ptr, integral_constant<size_t, 2>{}, integral_constant<size_t, 6>{});

>

> would be deduced into mdspan<int, extents<size_t, 2, 6>>. However, as the

> current wording ([mdspan.mdspan.overview]

> <https://eel.is/c++draft/mdspan.mdspan.overview>), it is just mdspan<int,

> extents<size_t, dynamic_extent, dynamic_extent>>

>

> template<class ElementType, class... Integrals>

> requires((is_convertible_v<Integrals, size_t> && ...) && sizeof...(Integrals) > 0)

> explicit mdspan(ElementType*, Integrals...)

> -> mdspan<ElementType, dextents<size_t, sizeof...(Integrals)>>;

>

> I wonder, is it a more appropriate choice to set the corresponding extents's

> static values based on whether Integrals... is integral_constant? For

> example

>

> mdspan ms(ptr, integral_constant<size_t, 2>{},

> integral_constant<size_t, 3>{},

> 4,

> integral_constant<size_t, 5>{});

>

> which will be deduced as mdspan<int, extents<size_t, 2, 3,

> dynamic_extent, 5>>.

>

> What do you guys think? Could this be considered an improvement?

>

> Hewill

>

Received on 2023-10-17 03:41:21