diff options
Diffstat (limited to 'c++/core/array.h')
-rw-r--r-- | c++/core/array.h | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/c++/core/array.h b/c++/core/array.h deleted file mode 100644 index f82b8d6..0000000 --- a/c++/core/array.h +++ /dev/null @@ -1,96 +0,0 @@ -#pragma once - -#include <vector> - -namespace saw { -/** - * Array container avoiding exceptions - */ -template<typename T> -class array { -private: - std::vector<T> data_; -public: - array() = default; - - SAW_FORBID_COPY(array); - - T& at(size_t i) noexcept { - return data_.at(i); - } - - const T& at(size_t i) noexcept const { - return data_.at(i); - } - - size_t size() noexcept const { - return data_.size(); - } - - T& front() noexcept { - return data_.front(); - } - - const T& front() noexcept const { - return data_.front(); - } - - T& back() noexcept { - return data_.back(); - } - - const T& back() noexcept const { - return data_.back(); - } - - error_or<void> push(T val) noexcept { - try{ - data_.push_back(std::move(val)); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - return void_t{}; - } - - error_or<void> pop() noexcept { - try{ - data_.pop_back(); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - return void_t{}; - } - - error_or<void> resize(size_t i) noexcept { - try{ - data_.resize(i); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - return void_t{}; - } - - error_or<void> reserve(size_t i) noexcept { - try{ - data_.reserve(i); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - return void_t{}; - } - - error_or<void> shrink_to_fit() noexcept { - try{ - data_.shrink_to_fit(); - }catch(std::exception& e){ - return make_error<err::out_of_memory>(); - } - - return void_t{}; - } -}; -} |