The implementation of the comparison operator led to compilation errors when -Werror=sign-compare is on, if one index type is signed while the other is unsigned.
@mhoemmen has suggested that:
We could fix this in any of various ways. Casting to common_type_t of the two index types before the comparison could help.
Similar issue in constructor of layout_{left|right} that takes a layout_stride::mapping, where size_t stride = 1; is compared against the stride of the input mapping, which could be signed.
The implementation of the comparison operator led to compilation errors when
-Werror=sign-compare
is on, if one index type is signed while the other is unsigned.@mhoemmen has suggested that: