summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2018-12-18 05:37:52 +0100
committerEugen Wissner <belka@caraus.de>2018-12-18 05:37:52 +0100
commitc293c6c809575d9ca2c21726b7d03d47496cb925 (patch)
tree24f263c3cfa30d445c34be5f7a88f4d421057bc0
parente93898d837699b5beee81917acc27da7d38394af (diff)
downloadtanya-0.14.0.tar.gz
container.array: Fix assigning non-copyable valuesv0.14.0
Fix #59.
-rw-r--r--source/tanya/container/array.d4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/tanya/container/array.d b/source/tanya/container/array.d
index 0c5027e..2b7a2b8 100644
--- a/source/tanya/container/array.d
+++ b/source/tanya/container/array.d
@@ -18,6 +18,7 @@ import core.checkedint;
import tanya.algorithm.comparison;
import tanya.algorithm.mutation;
import tanya.exception;
+import tanya.functional;
import tanya.memory;
import tanya.meta.trait;
import tanya.meta.transform;
@@ -1000,7 +1001,7 @@ struct Array(T)
*/
ref T opIndexAssign(E : T)(auto ref E value, size_t pos)
{
- return opIndex(pos) = value;
+ return opIndex(pos) = forward!value;
}
/// ditto
@@ -1685,4 +1686,5 @@ struct Array(T)
@nogc nothrow pure @safe unittest
{
static assert(is(Array!NonCopyable));
+ static assert(is(typeof({ Array!NonCopyable.init[0] = NonCopyable(); })));
}