mirror of
https://github.com/microsoft/GSL.git
synced 2024-11-03 17:56:43 -05:00
adding front and back
This commit is contained in:
parent
0fefba89da
commit
4b823b1651
@ -512,6 +512,19 @@ public:
|
||||
|
||||
constexpr reference at(index_type idx) const { return this->operator[](idx); }
|
||||
constexpr reference operator()(index_type idx) const { return this->operator[](idx); }
|
||||
|
||||
constexpr reference front() const
|
||||
{
|
||||
Expects(size() > 0);
|
||||
return data()[0];
|
||||
}
|
||||
|
||||
constexpr reference back() const
|
||||
{
|
||||
Expects(size() > 0);
|
||||
return data()[size() - 1];
|
||||
}
|
||||
|
||||
constexpr pointer data() const noexcept { return storage_.data(); }
|
||||
|
||||
// [span.iter], span iterator support
|
||||
|
@ -1644,6 +1644,22 @@ TEST(span_test, from_array_constructor)
|
||||
EXPECT_FALSE((std::is_default_constructible<span<int, 42>>::value));
|
||||
}
|
||||
|
||||
TEST(span_test, front_back)
|
||||
{
|
||||
int arr[5] = {1,2,3,4,5};
|
||||
span<int> s{arr};
|
||||
EXPECT_TRUE(s.front() == 1);
|
||||
EXPECT_TRUE(s.back() == 5);
|
||||
|
||||
std::set_terminate([] {
|
||||
std::cerr << "Expected Death. front_back";
|
||||
std::abort();
|
||||
});
|
||||
span<int> s2;
|
||||
EXPECT_DEATH(s2.front(), deathstring);
|
||||
EXPECT_DEATH(s2.back(), deathstring);
|
||||
}
|
||||
|
||||
#if __clang__ || __GNUC__
|
||||
#pragma GCC diagnostic pop
|
||||
#endif // __clang__ || __GNUC__
|
||||
|
Loading…
Reference in New Issue
Block a user