#pragma once namespace nall { template vector::vector(const initializer_list& values) { reserveRight(values.size()); for(auto& value : values) append(value); } template vector::vector(const vector& source) { operator=(source); } template vector::vector(vector&& source) { operator=(move(source)); } template vector::~vector() { reset(); } template vector::operator bool() const { return _size; } template auto vector::capacity() const -> uint { return _left + _size + _right; } template auto vector::size() const -> uint { return _size; } template auto vector::data() -> T* { return _pool; } template auto vector::data() const -> const T* { return _pool; } }