Add const overloads for iterator functions. (#753)

This commit adds `const`-correct overloads for `Array::{begin,end,rbegin,rend}`. These overloads are necessary for usage with [the GMock Container Matchers](http://google.github.io/googletest/reference/matchers.html#container-matchers), which cast the `Container` argument to a constant reference.
This commit is contained in:
Gregory Meyer (gregjm) 2023-01-06 06:46:34 -08:00 committed by GitHub
parent ff6e733fe1
commit c54ede3a9e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -454,6 +454,11 @@ public:
return iterator(storage);
}
CUTLASS_HOST_DEVICE
const_iterator begin() const {
return cbegin();
}
CUTLASS_HOST_DEVICE
const_iterator cbegin() const {
return const_iterator(storage);
@ -464,6 +469,11 @@ public:
return iterator(reinterpret_cast<pointer>(storage + kStorageElements));
}
CUTLASS_HOST_DEVICE
const_iterator end() const {
return cend();
}
CUTLASS_HOST_DEVICE
const_iterator cend() const {
return const_iterator(reinterpret_cast<const_pointer>(storage + kStorageElements));
@ -474,6 +484,11 @@ public:
return reverse_iterator(reinterpret_cast<pointer>(storage + kStorageElements));
}
CUTLASS_HOST_DEVICE
const_reverse_iterator rbegin() const {
return crbegin();
}
CUTLASS_HOST_DEVICE
const_reverse_iterator crbegin() const {
return const_reverse_iterator(reinterpret_cast<const_pointer>(storage + kStorageElements));
@ -484,6 +499,11 @@ public:
return reverse_iterator(reinterpret_cast<pointer>(storage));
}
CUTLASS_HOST_DEVICE
const_reverse_iterator rend() const {
return crend();
}
CUTLASS_HOST_DEVICE
const_reverse_iterator crend() const {
return const_reverse_iterator(reinterpret_cast<const_pointer>(storage));