mirror of https://github.com/ARMmbed/mbed-os.git
Span: Fix subspan return type
parent
54e2d92c95
commit
938d802ea0
|
@ -243,7 +243,8 @@ struct Span {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
template<std::ptrdiff_t Offset, std::ptrdiff_t Count>
|
template<std::ptrdiff_t Offset, std::ptrdiff_t Count>
|
||||||
Span<element_type, Count> subspan() const {
|
Span<element_type, Count == SPAN_DYNAMIC_EXTENT ? Extent - Offset : Count>
|
||||||
|
subspan() const {
|
||||||
MBED_STATIC_ASSERT(
|
MBED_STATIC_ASSERT(
|
||||||
Offset == 0 || (Offset > 0 && Offset < Extent),
|
Offset == 0 || (Offset > 0 && Offset < Extent),
|
||||||
"Invalid subspan offset"
|
"Invalid subspan offset"
|
||||||
|
@ -253,7 +254,7 @@ struct Span {
|
||||||
(Count >= 0 && Offset + Count <= Extent),
|
(Count >= 0 && Offset + Count <= Extent),
|
||||||
"Invalid subspan count"
|
"Invalid subspan count"
|
||||||
);
|
);
|
||||||
return Span<element_type, Count>(
|
return Span<element_type, Count == SPAN_DYNAMIC_EXTENT ? Extent - Offset : Count>(
|
||||||
_data + Offset,
|
_data + Offset,
|
||||||
Count == SPAN_DYNAMIC_EXTENT ? Extent - Offset : Count
|
Count == SPAN_DYNAMIC_EXTENT ? Extent - Offset : Count
|
||||||
);
|
);
|
||||||
|
@ -506,13 +507,14 @@ struct Span<ElementType, SPAN_DYNAMIC_EXTENT> {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
template<std::ptrdiff_t Offset, std::ptrdiff_t Count>
|
template<std::ptrdiff_t Offset, std::ptrdiff_t Count>
|
||||||
Span<element_type, Count> subspan() const {
|
Span<element_type, Count == SPAN_DYNAMIC_EXTENT ? SPAN_DYNAMIC_EXTENT : Count>
|
||||||
MBED_ASSERT(Offset == 0 || (Offset > 0 && Offset < _size));
|
subspan() const {
|
||||||
|
MBED_ASSERT(0 <= Offset && Offset <= _size);
|
||||||
MBED_ASSERT(
|
MBED_ASSERT(
|
||||||
(Count == SPAN_DYNAMIC_EXTENT) ||
|
(Count == SPAN_DYNAMIC_EXTENT) ||
|
||||||
(Count >= 0 && Offset + Count <= _size)
|
(Count >= 0 && Offset + Count <= _size)
|
||||||
);
|
);
|
||||||
return Span<element_type, Count>(
|
return Span<element_type, Count == SPAN_DYNAMIC_EXTENT ? SPAN_DYNAMIC_EXTENT : Count>(
|
||||||
_data + Offset,
|
_data + Offset,
|
||||||
Count == SPAN_DYNAMIC_EXTENT ? _size - Offset : Count
|
Count == SPAN_DYNAMIC_EXTENT ? _size - Offset : Count
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue