PST SDK 7.0.0.0-ebe6e713
Loading...
Searching...
No Matches
PstVector.h
Go to the documentation of this file.
1// Copyright PS-Tech B.V. All Rights Reserved.
2
3#pragma once
4
5#include "PstBase.h"
6
7#include <cstddef>
8
9namespace PSTech
10{
11namespace Utils
12{
28 template<typename T>
30 {
31 public:
32 typedef T value_type;
33 typedef size_t size_type;
34 typedef T* pointer;
35 typedef const T* const_pointer;
36 typedef T& reference;
37 typedef const T& const_reference;
38 typedef T* iterator;
39 typedef const T* const_iterator;
40
43
46
49
51 PstVector(const PstVector& vector);
52
54 PstVector(PstVector&& vector) noexcept;
55
58
60 PstVector& operator=(const PstVector& vector);
61
63 PstVector& operator=(PstVector&& vector) noexcept;
64
66 void swap(PstVector& vector) noexcept;
67
73 size_type size() const;
74
81
83 bool empty() const;
84
92
98 void resize(size_type size);
99
106
111 void clear();
112
117 void assign(size_type count, const_reference data);
118
123 void push_back(const_reference data);
124
129 void push_back(T&& data);
130
134 void pop_back();
135
142
149
152
155
158
161
164
167
170
173
176
179
181 const_reference operator [] (size_type index) const;
182
184 reference operator [] (size_type index);
185
186 private:
189 {
190 public:
193
196
198 template<class... A>
199 void construct(typename PstVector<T>::pointer p, A&... arg);
200
202 void construct(typename PstVector<T>::pointer p, T&& data);
203
204 /* Destroy elements of initialized storage p */
206
207 /* Deallocate storage p of deleted elements */
209 };
210
214 Allocator m_allocator;
215
217
218 void check_bounds(size_type index) const;
219 };
220}
221}
#define PST_EXPORT
Definition PstBase.h:12
Definition PstVector.h:189
void construct(typename PstVector< T >::pointer p, T &&data)
void construct(typename PstVector< T >::pointer p, A &... arg)
void construct(typename PstVector< T >::pointer p)
void destroy(typename PstVector< T >::pointer p)
PstVector< T >::pointer allocate(typename PstVector< T >::size_type num)
void deallocate(typename PstVector< T >::pointer p)
const_reference front() const
Target value_type
Definition PstVector.h:32
const_iterator begin() const
const Target * const_iterator
Definition PstVector.h:39
size_type m_size
Definition PstVector.h:211
Target * iterator
Definition PstVector.h:38
void resize(size_type size, const_reference data)
const_iterator cbegin() const
void swap(PstVector &vector) noexcept
size_t size_type
Definition PstVector.h:33
void reserve(size_type size)
const Target * const_pointer
Definition PstVector.h:35
PstVector(const PstVector &vector)
PstVector(size_type size, const_reference data)
const_reference back() const
Target * pointer
Definition PstVector.h:34
void check_bounds(size_type index) const
PstVector & operator=(PstVector &&vector) noexcept
PstVector & operator=(const PstVector &vector)
const_reference at(size_type index) const
const_iterator cend() const
Target & reference
Definition PstVector.h:36
pointer m_array
Definition PstVector.h:213
void resize_internal(size_type size, const_pointer data)
reference at(size_type index)
const_iterator end() const
size_type capacity() const
size_type m_allocated
Definition PstVector.h:212
PstVector(size_type size)
Allocator m_allocator
Definition PstVector.h:214
const Target & const_reference
Definition PstVector.h:37
PstVector(PstVector &&vector) noexcept
Definition PstArray.h:14
Definition ExportedTypeConversions.h:9