diff --git a/core/templates/local_vector.h b/core/templates/local_vector.h index 80d67676dc39..7bb7a4837ead 100644 --- a/core/templates/local_vector.h +++ b/core/templates/local_vector.h @@ -87,6 +87,30 @@ class LocalVector { memnew_placement(&data[count++], T(std::move(p_elem))); } + T &back() { + CRASH_COND(is_empty()); + return data[count - 1]; + } + + const T &back() const { + CRASH_COND(is_empty()); + return data[count - 1]; + } + + [[nodiscard]] T pop_back() { + CRASH_COND(is_empty()); + T value = std::move(data[count - 1]); + count--; + data[count].~T(); + return value; + } + + void remove_back() { + ERR_FAIL_COND(is_empty()); + count--; + data[count].~T(); + } + void remove_at(U p_index) { ERR_FAIL_UNSIGNED_INDEX(p_index, count); count--;