Add list initialization support for Vector & LocalVector
This commit is contained in:
parent
d2ac67d55e
commit
c0d3bdc0ca
5 changed files with 45 additions and 4 deletions
|
|
@ -36,6 +36,8 @@
|
|||
#include "core/templates/sort_array.h"
|
||||
#include "core/templates/vector.h"
|
||||
|
||||
#include <initializer_list>
|
||||
|
||||
template <class T, class U = uint32_t, bool force_trivial = false>
|
||||
class LocalVector {
|
||||
private:
|
||||
|
|
@ -228,6 +230,12 @@ public:
|
|||
}
|
||||
|
||||
_FORCE_INLINE_ LocalVector() {}
|
||||
_FORCE_INLINE_ LocalVector(std::initializer_list<T> p_init) {
|
||||
reserve(p_init.size());
|
||||
for (const T &element : p_init) {
|
||||
push_back(element);
|
||||
}
|
||||
}
|
||||
_FORCE_INLINE_ LocalVector(const LocalVector &p_from) {
|
||||
resize(p_from.size());
|
||||
for (U i = 0; i < p_from.count; i++) {
|
||||
|
|
|
|||
|
|
@ -43,6 +43,8 @@
|
|||
#include "core/templates/search_array.h"
|
||||
#include "core/templates/sort_array.h"
|
||||
|
||||
#include <initializer_list>
|
||||
|
||||
template <class T>
|
||||
class VectorWriteProxy {
|
||||
public:
|
||||
|
|
@ -258,6 +260,15 @@ public:
|
|||
}
|
||||
|
||||
_FORCE_INLINE_ Vector() {}
|
||||
_FORCE_INLINE_ Vector(std::initializer_list<T> p_init) {
|
||||
Error err = _cowdata.resize(p_init.size());
|
||||
ERR_FAIL_COND(err);
|
||||
|
||||
int i = 0;
|
||||
for (const T &element : p_init) {
|
||||
_cowdata.set(i++, element);
|
||||
}
|
||||
}
|
||||
_FORCE_INLINE_ Vector(const Vector &p_from) { _cowdata._ref(p_from._cowdata); }
|
||||
|
||||
_FORCE_INLINE_ ~Vector() {}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue