diff --git a/source/tanya/algorithm/mutation.d b/source/tanya/algorithm/mutation.d index bd71f40..99b0eae 100644 --- a/source/tanya/algorithm/mutation.d +++ b/source/tanya/algorithm/mutation.d @@ -5,7 +5,7 @@ /** * Algorithms that modify its arguments. * - * Copyright: Eugene Wissner 2017-2018. + * Copyright: Eugene Wissner 2017-2019. * License: $(LINK2 https://www.mozilla.org/en-US/MPL/2.0/, * Mozilla Public License, v. 2.0). * Authors: $(LINK2 mailto:info@caraus.de, Eugene Wissner) @@ -223,9 +223,16 @@ void move(T)(ref T source, ref T target) /// ditto T move(T)(ref T source) @trusted { - T target = void; - moveEmplace(source, target); - return target; + static if (hasElaborateCopyConstructor!T || hasElaborateDestructor!T) + { + T target = void; + moveEmplace(source, target); + return target; + } + else + { + return source; + } } /// diff --git a/source/tanya/typecons.d b/source/tanya/typecons.d index 516a34d..1407c62 100644 --- a/source/tanya/typecons.d +++ b/source/tanya/typecons.d @@ -660,7 +660,7 @@ if (isTypeTuple!Specs && NoDuplicates!Specs.length == Specs.length) } /** - * Tells whether this $(D_PSYMBOL Variant) was initialized. + * Tells whether this $(D_PSYMBOL Variant) is initialized. * * Returns: $(D_KEYWORD true) if this $(D_PSYMBOL Variant) contains a * value, $(D_KEYWORD false) otherwise. @@ -765,7 +765,7 @@ if (isTypeTuple!Specs && NoDuplicates!Specs.length == Specs.length) /** * Returns $(D_PSYMBOL TypeInfo) corresponding to the current type. * - * If this $(D_PSYMBOL Variant) isn't initialized, return + * If this $(D_PSYMBOL Variant) isn't initialized, returns * $(D_KEYWORD null). * * Returns: $(D_PSYMBOL TypeInfo) of the current type.