diff --git a/uppsrc/Core/Vcont.h b/uppsrc/Core/Vcont.h index f52353301..1635e9c62 100644 --- a/uppsrc/Core/Vcont.h +++ b/uppsrc/Core/Vcont.h @@ -131,6 +131,7 @@ public: #ifdef CPP_11 void Insert(int i, std::initializer_list init); + Vector(std::initializer_list init) { vector = NULL; items = alloc = 0; Insert(0, init); } #endif // Deep copy @@ -269,6 +270,9 @@ public: // Deep copy Array(const Array& v, int) { __DeepCopy(v); } + void Insert(int i, std::initializer_list init); + Array(std::initializer_list init) { Insert(0, init); } + class Iterator; class ConstIterator { diff --git a/uppsrc/Core/Vcont.hpp b/uppsrc/Core/Vcont.hpp index e65b63770..676879641 100644 --- a/uppsrc/Core/Vcont.hpp +++ b/uppsrc/Core/Vcont.hpp @@ -530,6 +530,16 @@ void Array::Insert(int i, const Array& x, int offset, int count) { vector[q + i] = DeepCopyNew(x[q + offset]); } +#ifdef CPP_11 +template +void Array::Insert(int i, std::initializer_list init) +{ + vector.InsertN(i, init.size()); + for(auto q : init) + vector[i++] = DeepCopyNew(q); +} +#endif + #ifdef UPP template void Array::Xmlize(XmlIO& xio, const char *itemtag)