diff options
| author | Eugen Wissner <belka@caraus.de> | 2018-12-18 05:37:52 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2018-12-18 05:37:52 +0100 |
| commit | c293c6c809575d9ca2c21726b7d03d47496cb925 (patch) | |
| tree | 24f263c3cfa30d445c34be5f7a88f4d421057bc0 | |
| parent | e93898d837699b5beee81917acc27da7d38394af (diff) | |
| download | tanya-0.14.0.tar.gz | |
container.array: Fix assigning non-copyable valuesv0.14.0
Fix #59.
| -rw-r--r-- | source/tanya/container/array.d | 4 |
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(); }))); } |
