Merge #14266: refactor: Lift prevector default vals to the member declaration
d2eee87928
Lift prevector default vals to the member declaration (Ben Woosley) Pull request description: I overlooked this possibility in #14028 ACKs for commit d2eee8: promag: utACKd2eee87
, change looks good because members are always initialized. 251Labs: utACKd2eee87
nice one. ken2812221: utACKd2eee87928
practicalswift: utACKd2eee87928
scravy: utACKd2eee87928
Tree-SHA512: f2726bae1cf892fd680cf8571027bcdc2e42ba567eaa901fb5fb5423b4d11b29e745e0163d82cb513d8c81399cc85933a16ed66d4a30829382d4721ffc41dc97
This commit is contained in:
commit
3632143ebb
1 changed files with 8 additions and 8 deletions
|
@ -147,14 +147,14 @@ public:
|
|||
};
|
||||
|
||||
private:
|
||||
size_type _size;
|
||||
size_type _size = 0;
|
||||
union direct_or_indirect {
|
||||
char direct[sizeof(T) * N];
|
||||
struct {
|
||||
size_type capacity;
|
||||
char* indirect;
|
||||
};
|
||||
} _union;
|
||||
} _union = {};
|
||||
|
||||
T* direct_ptr(difference_type pos) { return reinterpret_cast<T*>(_union.direct) + pos; }
|
||||
const T* direct_ptr(difference_type pos) const { return reinterpret_cast<const T*>(_union.direct) + pos; }
|
||||
|
@ -230,34 +230,34 @@ public:
|
|||
fill(item_ptr(0), first, last);
|
||||
}
|
||||
|
||||
prevector() : _size(0), _union{{}} {}
|
||||
prevector() {}
|
||||
|
||||
explicit prevector(size_type n) : prevector() {
|
||||
explicit prevector(size_type n) {
|
||||
resize(n);
|
||||
}
|
||||
|
||||
explicit prevector(size_type n, const T& val) : prevector() {
|
||||
explicit prevector(size_type n, const T& val) {
|
||||
change_capacity(n);
|
||||
_size += n;
|
||||
fill(item_ptr(0), n, val);
|
||||
}
|
||||
|
||||
template<typename InputIterator>
|
||||
prevector(InputIterator first, InputIterator last) : prevector() {
|
||||
prevector(InputIterator first, InputIterator last) {
|
||||
size_type n = last - first;
|
||||
change_capacity(n);
|
||||
_size += n;
|
||||
fill(item_ptr(0), first, last);
|
||||
}
|
||||
|
||||
prevector(const prevector<N, T, Size, Diff>& other) : prevector() {
|
||||
prevector(const prevector<N, T, Size, Diff>& other) {
|
||||
size_type n = other.size();
|
||||
change_capacity(n);
|
||||
_size += n;
|
||||
fill(item_ptr(0), other.begin(), other.end());
|
||||
}
|
||||
|
||||
prevector(prevector<N, T, Size, Diff>&& other) : prevector() {
|
||||
prevector(prevector<N, T, Size, Diff>&& other) {
|
||||
swap(other);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue