Developing C++11 features

git-svn-id: svn://ultimatepp.org/upp/trunk@8866 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2015-08-29 21:08:51 +00:00
parent 238cd57518
commit 6e4e6e9f93
2 changed files with 14 additions and 0 deletions

View file

@ -131,6 +131,7 @@ public:
#ifdef CPP_11
void Insert(int i, std::initializer_list<T> init);
Vector(std::initializer_list<T> 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<T> init);
Array(std::initializer_list<T> init) { Insert(0, init); }
class Iterator;
class ConstIterator {

View file

@ -530,6 +530,16 @@ void Array<T>::Insert(int i, const Array& x, int offset, int count) {
vector[q + i] = DeepCopyNew(x[q + offset]);
}
#ifdef CPP_11
template <class T>
void Array<T>::Insert(int i, std::initializer_list<T> init)
{
vector.InsertN(i, init.size());
for(auto q : init)
vector[i++] = DeepCopyNew(q);
}
#endif
#ifdef UPP
template <class T>
void Array<T>::Xmlize(XmlIO& xio, const char *itemtag)