Title
`simd::partial_load` uses undefined identifier `T`
Status
new
Section
[simd.loadstore]
Submitter
Tim Song

Created on 2025-06-21.00:00:00 last changed 1 week ago

Messages

Date: 2025-06-21.13:50:40

Proposed resolution:

This wording is relative to N5008.

  1. Modify [simd.loadstore] as indicated:

    
    template<class V = see below, ranges::contiguous_range R, class... Flags>
      requires ranges::sized_range<R>
      constexpr V partial_load(R&& r, flags<Flags...> f = {});
    […]
    template<class V = see below, contiguous_iterator I, sized_sentinel_for<I> S, class... Flags>
      constexpr V partial_load(I first, S last, const typename V::mask_type& mask,
                               flags<Flags...> f = {});
    

    -6- […]

    -7- Mandates: […]

    -8- Preconditions: […]

    -9- Effects: Initializes theReturns: A `basic_simd` object whose ith element is initialized with mask[i] && i < ranges::size(r) ? static_cast<T>(ranges::data(r)[i]) : T() for all i in the range of [0, V::size()), where `T` is `V::value_type`.

    -10- Remarks: The default argument for template parameter `V` is basic_simd<ranges::range_value_t<R>>.

Date: 2025-06-21.00:00:00

The Effects: element of `std::simd::partial_load` (after the latest rename) uses `T` but that is not defined anywhere. It should be `V::value_type`.

Also, this paragraph should be a Returns: element.

History
Date User Action Args
2025-06-21 13:50:40adminsetmessages: + msg14838
2025-06-21 00:00:00admincreate