SmallVector's construct_range is the same thing as std::uninitialized_fill, no need to reinvent it.

llvm-svn: 149851
This commit is contained in:
Benjamin Kramer 2012-02-05 22:48:31 +00:00
parent a8bd26e896
commit 40d79093d9
1 changed files with 3 additions and 9 deletions

View File

@ -299,7 +299,7 @@ public:
} else if (N > this->size()) {
if (this->capacity() < N)
this->grow(N);
this->construct_range(this->end(), this->begin()+N, T());
std::uninitialized_fill(this->end(), this->begin()+N, T());
this->setEnd(this->begin()+N);
}
}
@ -311,7 +311,7 @@ public:
} else if (N > this->size()) {
if (this->capacity() < N)
this->grow(N);
construct_range(this->end(), this->begin()+N, NV);
std::uninitialized_fill(this->end(), this->begin()+N, NV);
this->setEnd(this->begin()+N);
}
}
@ -378,7 +378,7 @@ public:
if (this->capacity() < NumElts)
this->grow(NumElts);
this->setEnd(this->begin()+NumElts);
construct_range(this->begin(), this->end(), Elt);
std::uninitialized_fill(this->begin(), this->end(), Elt);
}
iterator erase(iterator I) {
@ -556,12 +556,6 @@ public:
assert(N <= this->capacity());
this->setEnd(this->begin() + N);
}
private:
static void construct_range(T *S, T *E, const T &Elt) {
for (; S != E; ++S)
new (S) T(Elt);
}
};