First merge of 2.064 beta.

This corresponds to DMD commit a913ce4bc59a94a022a27e390fc841f4aededffb.

Doesn't build Phobos yet.
This commit is contained in:
David Nadlinger
2013-10-19 23:21:53 +02:00
committed by Kai Nacke
parent c400d180d2
commit cb341586e3
130 changed files with 13566 additions and 9190 deletions

View File

@@ -20,26 +20,26 @@
template<class C>
struct ArrayIter
{
Array* array;
Array<C>* array;
size_t index;
ArrayIter(Array& arr, size_t idx = 0)
ArrayIter(Array<C>& arr, size_t idx = 0)
: array(&arr), index(idx)
{ }
ArrayIter(Array* arr, size_t idx = 0)
ArrayIter(Array<C>* arr, size_t idx = 0)
: array(arr), index(idx)
{ assert(arr && "null array"); }
ArrayIter<C>& operator=(const Array& arr)
ArrayIter<C>& operator=(const Array<C>& arr)
{
array = const_cast<Array*>(&arr);
array = const_cast<Array<C>*>(&arr);
index = 0;
return *this;
}
ArrayIter<C>& operator=(const Array* arr)
ArrayIter<C>& operator=(const Array<C>* arr)
{
assert(arr && "null array");
array = const_cast<Array*>(arr);
array = const_cast<Array<C>*>(arr);
index = 0;
return *this;
}
@@ -54,7 +54,7 @@ struct ArrayIter
}
C* get() {
return static_cast<C*>(array->data[index]);
return (*array)[index];
}
C* operator->() {
return get();