Skip to content

Commit 3632143

Browse files
author
MarcoFalke
committed
Merge #14266: refactor: Lift prevector default vals to the member declaration
d2eee87 Lift prevector default vals to the member declaration (Ben Woosley) Pull request description: I overlooked this possibility in #14028 ACKs for commit d2eee8: promag: utACK d2eee87, change looks good because members are always initialized. 251Labs: utACK d2eee87 nice one. ken2812221: utACK d2eee87 practicalswift: utACK d2eee87 scravy: utACK d2eee87 Tree-SHA512: f2726bae1cf892fd680cf8571027bcdc2e42ba567eaa901fb5fb5423b4d11b29e745e0163d82cb513d8c81399cc85933a16ed66d4a30829382d4721ffc41dc97
2 parents 8ec7121 + d2eee87 commit 3632143

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/prevector.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -147,14 +147,14 @@ class prevector {
147147
};
148148

149149
private:
150-
size_type _size;
150+
size_type _size = 0;
151151
union direct_or_indirect {
152152
char direct[sizeof(T) * N];
153153
struct {
154154
size_type capacity;
155155
char* indirect;
156156
};
157-
} _union;
157+
} _union = {};
158158

159159
T* direct_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.direct) + pos; }
160160
const T* direct_ptr(difference_type pos) const { return reinterpret_cast<const T*>(_union.direct) + pos; }
@@ -230,34 +230,34 @@ class prevector {
230230
fill(item_ptr(0), first, last);
231231
}
232232

233-
prevector() : _size(0), _union{{}} {}
233+
prevector() {}
234234

235-
explicit prevector(size_type n) : prevector() {
235+
explicit prevector(size_type n) {
236236
resize(n);
237237
}
238238

239-
explicit prevector(size_type n, const T& val) : prevector() {
239+
explicit prevector(size_type n, const T& val) {
240240
change_capacity(n);
241241
_size += n;
242242
fill(item_ptr(0), n, val);
243243
}
244244

245245
template<typename InputIterator>
246-
prevector(InputIterator first, InputIterator last) : prevector() {
246+
prevector(InputIterator first, InputIterator last) {
247247
size_type n = last - first;
248248
change_capacity(n);
249249
_size += n;
250250
fill(item_ptr(0), first, last);
251251
}
252252

253-
prevector(const prevector<N, T, Size, Diff>& other) : prevector() {
253+
prevector(const prevector<N, T, Size, Diff>& other) {
254254
size_type n = other.size();
255255
change_capacity(n);
256256
_size += n;
257257
fill(item_ptr(0), other.begin(), other.end());
258258
}
259259

260-
prevector(prevector<N, T, Size, Diff>&& other) : prevector() {
260+
prevector(prevector<N, T, Size, Diff>&& other) {
261261
swap(other);
262262
}
263263

0 commit comments

Comments
 (0)