size_bytes() returns the span's size in bytes.
Assuming the span was constructed with an accurate size parameter, the check size() < dynamic_extent / sizeof(element_type) isn't required, since size_t(-1) (which is dynamic_extent) represents the size of the address space, so the number of bytes will never exceed it and in practice won't even come close.
Otherwise, it is not actually feasible to detect cases when the size parameter does not correspond to the dimensions of the underlying data pointer. In these cases, the relationship size() < dynamic_extent / sizeof(element_type) is simply one of many ways in which the size() could be incorrect, and serves no necessary purpose.
size_bytes()
returns the span's size in bytes. Assuming the span was constructed with an accurate size parameter, the checksize() < dynamic_extent / sizeof(element_type)
isn't required, sincesize_t(-1)
(which isdynamic_extent
) represents the size of the address space, so the number of bytes will never exceed it and in practice won't even come close. Otherwise, it is not actually feasible to detect cases when the size parameter does not correspond to the dimensions of the underlying data pointer. In these cases, the relationshipsize() < dynamic_extent / sizeof(element_type)
is simply one of many ways in which thesize()
could be incorrect, and serves no necessary purpose.Resolves #1012