|  |  | @@ -1,989 +0,0 @@ | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/buffers/AudioSampleBuffer.h b/source/modules/water/buffers/AudioSampleBuffer.h | 
		
	
		
			
			|  |  |  | index 1716c5efd..8ae1e6388 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/buffers/AudioSampleBuffer.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/buffers/AudioSampleBuffer.h | 
		
	
		
			
			|  |  |  | @@ -205,39 +205,6 @@ public: | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | ~AudioSampleBuffer() noexcept {} | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Move constructor */ | 
		
	
		
			
			|  |  |  | -    AudioSampleBuffer (AudioSampleBuffer&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : numChannels (other.numChannels), | 
		
	
		
			
			|  |  |  | -          size (other.size), | 
		
	
		
			
			|  |  |  | -          allocatedBytes (other.allocatedBytes), | 
		
	
		
			
			|  |  |  | -          channels (other.channels), | 
		
	
		
			
			|  |  |  | -          allocatedData (static_cast<HeapBlock<char>&&> (other.allocatedData)), | 
		
	
		
			
			|  |  |  | -          isClear (other.isClear) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        std::memcpy (preallocatedChannelSpace, other.preallocatedChannelSpace, sizeof (preallocatedChannelSpace)); | 
		
	
		
			
			|  |  |  | -        other.numChannels = 0; | 
		
	
		
			
			|  |  |  | -        other.size = 0; | 
		
	
		
			
			|  |  |  | -        other.allocatedBytes = 0; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    /** Move assignment */ | 
		
	
		
			
			|  |  |  | -    AudioSampleBuffer& operator= (AudioSampleBuffer&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        numChannels = other.numChannels; | 
		
	
		
			
			|  |  |  | -        size = other.size; | 
		
	
		
			
			|  |  |  | -        allocatedBytes = other.allocatedBytes; | 
		
	
		
			
			|  |  |  | -        channels = other.channels; | 
		
	
		
			
			|  |  |  | -        allocatedData = static_cast<HeapBlock<char>&&> (other.allocatedData); | 
		
	
		
			
			|  |  |  | -        isClear = other.isClear; | 
		
	
		
			
			|  |  |  | -        memcpy (preallocatedChannelSpace, other.preallocatedChannelSpace, sizeof (preallocatedChannelSpace)); | 
		
	
		
			
			|  |  |  | -        other.numChannels = 0; | 
		
	
		
			
			|  |  |  | -        other.size = 0; | 
		
	
		
			
			|  |  |  | -        other.allocatedBytes = 0; | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Returns the number of channels of audio data that this buffer contains. | 
		
	
		
			
			|  |  |  | @see getSampleData | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/Array.h b/source/modules/water/containers/Array.h | 
		
	
		
			
			|  |  |  | index a03857e55..e4367c9f2 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/Array.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/Array.h | 
		
	
		
			
			|  |  |  | @@ -81,15 +81,6 @@ public: | 
		
	
		
			
			|  |  |  | new (data.elements + i) ElementType (other.data.elements[i]); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    Array (Array<ElementType>&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : data (static_cast<ArrayAllocationBase<ElementType>&&> (other.data)), | 
		
	
		
			
			|  |  |  | -          numUsed (other.numUsed) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        other.numUsed = 0; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Initalises from a null-terminated C array of values. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @param values   the array to copy from | 
		
	
		
			
			|  |  |  | @@ -137,17 +128,6 @@ public: | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    Array& operator= (Array&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        deleteAllElements(); | 
		
	
		
			
			|  |  |  | -        data = static_cast<ArrayAllocationBase<ElementType>&&> (other.data); | 
		
	
		
			
			|  |  |  | -        numUsed = other.numUsed; | 
		
	
		
			
			|  |  |  | -        other.numUsed = 0; | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Compares this array to another one. | 
		
	
		
			
			|  |  |  | Two arrays are considered equal if they both contain the same set of | 
		
	
		
			
			|  |  |  | @@ -380,22 +360,6 @@ public: | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Appends a new element at the end of the array. | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        @param newElement       the new object to add to the array | 
		
	
		
			
			|  |  |  | -        @see set, insert, addIfNotAlreadyThere, addSorted, addUsingDefaultSort, addArray | 
		
	
		
			
			|  |  |  | -    */ | 
		
	
		
			
			|  |  |  | -    bool add (ElementType&& newElement) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        if (! data.ensureAllocatedSize (static_cast<size_t>(numUsed + 1))) | 
		
	
		
			
			|  |  |  | -            return false; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        new (data.elements + numUsed++) ElementType (static_cast<ElementType&&> (newElement)); | 
		
	
		
			
			|  |  |  | -        return true; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Inserts a new element into the array at a given position. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | If the index is less than 0 or greater than the size of the array, the | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/ArrayAllocationBase.h b/source/modules/water/containers/ArrayAllocationBase.h | 
		
	
		
			
			|  |  |  | index f3049d8e5..878ad81fc 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/ArrayAllocationBase.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/ArrayAllocationBase.h | 
		
	
		
			
			|  |  |  | @@ -44,29 +44,6 @@ namespace water { | 
		
	
		
			
			|  |  |  | template <class ElementType> | 
		
	
		
			
			|  |  |  | class ArrayAllocationBase | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -private: | 
		
	
		
			
			|  |  |  | -   #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 5 | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    struct IsTriviallyCopyable : std::integral_constant<bool, false> {}; | 
		
	
		
			
			|  |  |  | -   #else | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    using IsTriviallyCopyable = std::is_trivially_copyable<T>; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    using TriviallyCopyableVoid = typename std::enable_if<IsTriviallyCopyable<T>::value, void>::type; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    using TriviallyCopyableBool = typename std::enable_if<IsTriviallyCopyable<T>::value, bool>::type; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    using NonTriviallyCopyableVoid = typename std::enable_if<! IsTriviallyCopyable<T>::value, void>::type; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    template <typename T> | 
		
	
		
			
			|  |  |  | -    using NonTriviallyCopyableBool = typename std::enable_if<! IsTriviallyCopyable<T>::value, bool>::type; | 
		
	
		
			
			|  |  |  | -#endif // WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | public: | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Creates an empty array. */ | 
		
	
		
			
			|  |  |  | @@ -81,19 +58,6 @@ public: | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    ArrayAllocationBase (ArrayAllocationBase<ElementType>&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : elements (static_cast<HeapBlock<ElementType>&&> (other.elements)), | 
		
	
		
			
			|  |  |  | -          numAllocated (other.numAllocated) {} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    ArrayAllocationBase& operator= (ArrayAllocationBase<ElementType>&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        elements = static_cast<HeapBlock<ElementType>&&> (other.elements); | 
		
	
		
			
			|  |  |  | -        numAllocated = other.numAllocated; | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Changes the amount of storage allocated. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @@ -102,12 +66,7 @@ public: | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @param numNewElements  the number of elements that are needed | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    template <typename T = ElementType> TriviallyCopyableBool<T> | 
		
	
		
			
			|  |  |  | -   #else | 
		
	
		
			
			|  |  |  | -    bool | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | -    setAllocatedSize (const size_t numNewElements) noexcept | 
		
	
		
			
			|  |  |  | +    bool setAllocatedSize (const size_t numNewElements) noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | if (numAllocated != numNewElements) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | @@ -127,43 +86,6 @@ public: | 
		
	
		
			
			|  |  |  | return true; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    template <typename T = ElementType> | 
		
	
		
			
			|  |  |  | -    NonTriviallyCopyableBool<T> setAllocatedSize (const size_t numNewElements) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        if (numAllocated == numNewElements) | 
		
	
		
			
			|  |  |  | -            return true; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        if (numNewElements > 0) | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -            HeapBlock<ElementType> newElements; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -            if (! newElements.malloc (numNewElements)) | 
		
	
		
			
			|  |  |  | -                return false; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -            size_t i = 0; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -            for (; i < numAllocated && i < numNewElements; ++i) | 
		
	
		
			
			|  |  |  | -            { | 
		
	
		
			
			|  |  |  | -                new (newElements + i) ElementType (std::move (elements[i])); | 
		
	
		
			
			|  |  |  | -                elements[i].~ElementType(); | 
		
	
		
			
			|  |  |  | -            } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -            for (; i < numNewElements; ++i) | 
		
	
		
			
			|  |  |  | -                new (newElements + i) ElementType (); | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -            elements = std::move (newElements); | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | -        else | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -            elements.free(); | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        numAllocated = numNewElements; | 
		
	
		
			
			|  |  |  | -        return true; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Increases the amount of storage allocated if it is less than a given amount. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | This will retain any data currently held in the array, but will add | 
		
	
		
			
			|  |  |  | @@ -198,12 +120,7 @@ public: | 
		
	
		
			
			|  |  |  | std::swap (numAllocated, other.numAllocated); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    template <typename T = ElementType> TriviallyCopyableVoid<T> | 
		
	
		
			
			|  |  |  | -   #else | 
		
	
		
			
			|  |  |  | -    void | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | -    moveMemory (ElementType* target, const ElementType* source, const size_t numElements) noexcept | 
		
	
		
			
			|  |  |  | +    void moveMemory (ElementType* target, const ElementType* source, const size_t numElements) noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | CARLA_SAFE_ASSERT_RETURN(target != nullptr,); | 
		
	
		
			
			|  |  |  | CARLA_SAFE_ASSERT_RETURN(source != nullptr,); | 
		
	
		
			
			|  |  |  | @@ -213,42 +130,6 @@ public: | 
		
	
		
			
			|  |  |  | std::memmove (target, source, ((size_t) numElements) * sizeof (ElementType)); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    template <typename T = ElementType> | 
		
	
		
			
			|  |  |  | -    NonTriviallyCopyableVoid<T> moveMemory (ElementType* target, const ElementType* source, const size_t numElements) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        CARLA_SAFE_ASSERT_RETURN(target != nullptr,); | 
		
	
		
			
			|  |  |  | -        CARLA_SAFE_ASSERT_RETURN(source != nullptr,); | 
		
	
		
			
			|  |  |  | -        CARLA_SAFE_ASSERT_RETURN(target != source,); | 
		
	
		
			
			|  |  |  | -        CARLA_SAFE_ASSERT_RETURN(numElements != 0,); | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        if (target > source) | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -            for (size_t i = 0; i < numElements; ++i) | 
		
	
		
			
			|  |  |  | -            { | 
		
	
		
			
			|  |  |  | -                moveElement (target, std::move (*source)); | 
		
	
		
			
			|  |  |  | -                ++target; | 
		
	
		
			
			|  |  |  | -                ++source; | 
		
	
		
			
			|  |  |  | -            } | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | -        else | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -            for (size_t i = 0; i < numElements; ++i) | 
		
	
		
			
			|  |  |  | -            { | 
		
	
		
			
			|  |  |  | -                moveElement (target, std::move (*source)); | 
		
	
		
			
			|  |  |  | -                --target; | 
		
	
		
			
			|  |  |  | -                --source; | 
		
	
		
			
			|  |  |  | -            } | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    void moveElement (ElementType* destination, const ElementType&& source) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        destination->~ElementType(); | 
		
	
		
			
			|  |  |  | -        new (destination) ElementType (std::move (source)); | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | HeapBlock<ElementType> elements; | 
		
	
		
			
			|  |  |  | size_t numAllocated; | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/LinkedListPointer.h b/source/modules/water/containers/LinkedListPointer.h | 
		
	
		
			
			|  |  |  | index c71d52d23..ed75fc268 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/LinkedListPointer.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/LinkedListPointer.h | 
		
	
		
			
			|  |  |  | @@ -81,23 +81,6 @@ public: | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    LinkedListPointer (LinkedListPointer&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : item (other.item) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        other.item = nullptr; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    LinkedListPointer& operator= (LinkedListPointer&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        wassert (this != &other); // hopefully the compiler should make this situation impossible! | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        item = other.item; | 
		
	
		
			
			|  |  |  | -        other.item = nullptr; | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Returns the item which this pointer points to. */ | 
		
	
		
			
			|  |  |  | inline operator ObjectType*() const noexcept | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/NamedValueSet.cpp b/source/modules/water/containers/NamedValueSet.cpp | 
		
	
		
			
			|  |  |  | index 9302e1691..7543af158 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/NamedValueSet.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/NamedValueSet.cpp | 
		
	
		
			
			|  |  |  | @@ -44,19 +44,6 @@ NamedValueSet& NamedValueSet::operator= (const NamedValueSet& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -NamedValueSet::NamedValueSet (NamedValueSet&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : values (static_cast<Array<NamedValue>&&> (other.values)) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -NamedValueSet& NamedValueSet::operator= (NamedValueSet&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    other.values.swapWith (values); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | NamedValueSet::~NamedValueSet() noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | @@ -117,23 +104,6 @@ var* NamedValueSet::getVarPointer (const Identifier& name) const noexcept | 
		
	
		
			
			|  |  |  | return nullptr; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -bool NamedValueSet::set (const Identifier& name, var&& newValue) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    if (var* const v = getVarPointer (name)) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        if (v->equalsWithSameType (newValue)) | 
		
	
		
			
			|  |  |  | -            return false; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        *v = static_cast<var&&> (newValue); | 
		
	
		
			
			|  |  |  | -        return true; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    values.add (NamedValue (name, static_cast<var&&> (newValue))); | 
		
	
		
			
			|  |  |  | -    return true; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool NamedValueSet::set (const Identifier& name, const var& newValue) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | if (var* const v = getVarPointer (name)) | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/NamedValueSet.h b/source/modules/water/containers/NamedValueSet.h | 
		
	
		
			
			|  |  |  | index 7d0caa02e..ea4ef421d 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/NamedValueSet.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/NamedValueSet.h | 
		
	
		
			
			|  |  |  | @@ -50,11 +50,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Replaces this set with a copy of another set. */ | 
		
	
		
			
			|  |  |  | NamedValueSet& operator= (const NamedValueSet&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    NamedValueSet (NamedValueSet&&) noexcept; | 
		
	
		
			
			|  |  |  | -    NamedValueSet& operator= (NamedValueSet&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Destructor. */ | 
		
	
		
			
			|  |  |  | ~NamedValueSet() noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @@ -68,27 +63,6 @@ public: | 
		
	
		
			
			|  |  |  | NamedValue (const Identifier& n, const var& v) : name (n), value (v) {} | 
		
	
		
			
			|  |  |  | NamedValue (const NamedValue& other) : name (other.name), value (other.value) {} | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -    #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -        NamedValue (NamedValue&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : name (static_cast<Identifier&&> (other.name)), | 
		
	
		
			
			|  |  |  | -          value (static_cast<var&&> (other.value)) | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        NamedValue (Identifier&& n, var&& v) noexcept | 
		
	
		
			
			|  |  |  | -        : name (static_cast<Identifier&&> (n)), | 
		
	
		
			
			|  |  |  | -          value (static_cast<var&&> (v)) | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        NamedValue& operator= (NamedValue&& other) noexcept | 
		
	
		
			
			|  |  |  | -        { | 
		
	
		
			
			|  |  |  | -            name = static_cast<Identifier&&> (other.name); | 
		
	
		
			
			|  |  |  | -            value = static_cast<var&&> (other.value); | 
		
	
		
			
			|  |  |  | -            return *this; | 
		
	
		
			
			|  |  |  | -        } | 
		
	
		
			
			|  |  |  | -     #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool operator== (const NamedValue& other) const noexcept   { return name == other.name && value == other.value; } | 
		
	
		
			
			|  |  |  | bool operator!= (const NamedValue& other) const noexcept   { return ! operator== (other); } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @@ -124,14 +98,6 @@ public: | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | bool set (const Identifier& name, const var& newValue); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Changes or adds a named value. | 
		
	
		
			
			|  |  |  | -        @returns    true if a value was changed or added; false if the | 
		
	
		
			
			|  |  |  | -                    value was already set the value passed-in. | 
		
	
		
			
			|  |  |  | -    */ | 
		
	
		
			
			|  |  |  | -    bool set (const Identifier& name, var&& newValue); | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Returns true if the set contains an item with the specified name. */ | 
		
	
		
			
			|  |  |  | bool contains (const Identifier& name) const noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/OwnedArray.h b/source/modules/water/containers/OwnedArray.h | 
		
	
		
			
			|  |  |  | index 1a90100cd..ffa89203f 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/OwnedArray.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/OwnedArray.h | 
		
	
		
			
			|  |  |  | @@ -73,25 +73,6 @@ public: | 
		
	
		
			
			|  |  |  | deleteAllObjects(); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    OwnedArray (OwnedArray&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : data (static_cast<ArrayAllocationBase <ObjectClass*>&&> (other.data)), | 
		
	
		
			
			|  |  |  | -          numUsed (other.numUsed) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        other.numUsed = 0; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    OwnedArray& operator= (OwnedArray&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        deleteAllObjects(); | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -        data = static_cast<ArrayAllocationBase <ObjectClass*>&&> (other.data); | 
		
	
		
			
			|  |  |  | -        numUsed = other.numUsed; | 
		
	
		
			
			|  |  |  | -        other.numUsed = 0; | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Clears the array, optionally deleting the objects inside it first. */ | 
		
	
		
			
			|  |  |  | void clear (bool deleteObjects = true) | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/Variant.cpp b/source/modules/water/containers/Variant.cpp | 
		
	
		
			
			|  |  |  | index a93dba9fb..0472b10e3 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/Variant.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/Variant.cpp | 
		
	
		
			
			|  |  |  | @@ -265,34 +265,6 @@ var& var::operator= (const double v)             { type->cleanUp (value); type = | 
		
	
		
			
			|  |  |  | var& var::operator= (const char* const v)        { type->cleanUp (value); type = &VariantType_String::instance; new (value.stringValue) String (v); return *this; } | 
		
	
		
			
			|  |  |  | var& var::operator= (const String& v)            { type->cleanUp (value); type = &VariantType_String::instance; new (value.stringValue) String (v); return *this; } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -var::var (var&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : type (other.type), | 
		
	
		
			
			|  |  |  | -      value (other.value) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    other.type = &VariantType_Void::instance; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -var& var::operator= (var&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    swapWith (other); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -var::var (String&& v)  : type (&VariantType_String::instance) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    new (value.stringValue) String (static_cast<String&&> (v)); | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -var& var::operator= (String&& v) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    type->cleanUp (value); | 
		
	
		
			
			|  |  |  | -    type = &VariantType_String::instance; | 
		
	
		
			
			|  |  |  | -    new (value.stringValue) String (static_cast<String&&> (v)); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | bool var::equals (const var& other) const noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/containers/Variant.h b/source/modules/water/containers/Variant.h | 
		
	
		
			
			|  |  |  | index 0e181712a..c1472a733 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/containers/Variant.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/containers/Variant.h | 
		
	
		
			
			|  |  |  | @@ -69,13 +69,6 @@ public: | 
		
	
		
			
			|  |  |  | var& operator= (const char* value); | 
		
	
		
			
			|  |  |  | var& operator= (const String& value); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    var (var&&) noexcept; | 
		
	
		
			
			|  |  |  | -    var (String&&); | 
		
	
		
			
			|  |  |  | -    var& operator= (var&&) noexcept; | 
		
	
		
			
			|  |  |  | -    var& operator= (String&&); | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | void swapWith (var& other) noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | /** Returns a var object that can be used where you need the javascript "undefined" value. */ | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/files/File.cpp b/source/modules/water/files/File.cpp | 
		
	
		
			
			|  |  |  | index 2ce0f6f8e..8c74854f0 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/files/File.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/files/File.cpp | 
		
	
		
			
			|  |  |  | @@ -86,19 +86,6 @@ File& File::operator= (const File& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -File::File (File&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : fullPath (static_cast<String&&> (other.fullPath)) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -File& File::operator= (File&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    fullPath = static_cast<String&&> (other.fullPath); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool File::isNull() const | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | return fullPath.isEmpty(); | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/files/File.h b/source/modules/water/files/File.h | 
		
	
		
			
			|  |  |  | index 1fa1a7c3e..2c8077963 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/files/File.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/files/File.h | 
		
	
		
			
			|  |  |  | @@ -89,11 +89,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Copies from another file object. */ | 
		
	
		
			
			|  |  |  | File& operator= (const File& otherFile); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    File (File&&) noexcept; | 
		
	
		
			
			|  |  |  | -    File& operator= (File&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Checks whether the file actually exists. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/memory/HeapBlock.h b/source/modules/water/memory/HeapBlock.h | 
		
	
		
			
			|  |  |  | index b8c232e11..98656e872 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/memory/HeapBlock.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/memory/HeapBlock.h | 
		
	
		
			
			|  |  |  | @@ -94,20 +94,6 @@ public: | 
		
	
		
			
			|  |  |  | std::free (data); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    HeapBlock (HeapBlock&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : data (other.data) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        other.data = nullptr; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    HeapBlock& operator= (HeapBlock&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        std::swap (data, other.data); | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Returns a raw pointer to the allocated data. | 
		
	
		
			
			|  |  |  | This may be a null pointer if the data hasn't yet been allocated, or if it has been | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/memory/MemoryBlock.cpp b/source/modules/water/memory/MemoryBlock.cpp | 
		
	
		
			
			|  |  |  | index 6e83b8dfc..8b380da88 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/memory/MemoryBlock.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/memory/MemoryBlock.cpp | 
		
	
		
			
			|  |  |  | @@ -87,22 +87,6 @@ MemoryBlock& MemoryBlock::operator= (const MemoryBlock& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -MemoryBlock::MemoryBlock (MemoryBlock&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : data (static_cast<HeapBlock<char>&&> (other.data)), | 
		
	
		
			
			|  |  |  | -      size (other.size) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -MemoryBlock& MemoryBlock::operator= (MemoryBlock&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    data = static_cast<HeapBlock<char>&&> (other.data); | 
		
	
		
			
			|  |  |  | -    size = other.size; | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | bool MemoryBlock::operator== (const MemoryBlock& other) const noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/memory/MemoryBlock.h b/source/modules/water/memory/MemoryBlock.h | 
		
	
		
			
			|  |  |  | index 4383139d6..701120cfa 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/memory/MemoryBlock.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/memory/MemoryBlock.h | 
		
	
		
			
			|  |  |  | @@ -68,11 +68,6 @@ public: | 
		
	
		
			
			|  |  |  | */ | 
		
	
		
			
			|  |  |  | MemoryBlock& operator= (const MemoryBlock&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    MemoryBlock (MemoryBlock&&) noexcept; | 
		
	
		
			
			|  |  |  | -    MemoryBlock& operator= (MemoryBlock&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Compares two memory blocks. | 
		
	
		
			
			|  |  |  | @returns true only if the two blocks are the same size and have identical contents. | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/memory/ReferenceCountedObject.h b/source/modules/water/memory/ReferenceCountedObject.h | 
		
	
		
			
			|  |  |  | index 4f5a256ee..b23ed914d 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/memory/ReferenceCountedObject.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/memory/ReferenceCountedObject.h | 
		
	
		
			
			|  |  |  | @@ -301,22 +301,6 @@ public: | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Takes-over the object from another pointer. */ | 
		
	
		
			
			|  |  |  | -    ReferenceCountedObjectPtr (ReferenceCountedObjectPtr&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : referencedObject (other.referencedObject) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        other.referencedObject = nullptr; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    /** Takes-over the object from another pointer. */ | 
		
	
		
			
			|  |  |  | -    ReferenceCountedObjectPtr& operator= (ReferenceCountedObjectPtr&& other) | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        std::swap (referencedObject, other.referencedObject); | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Destructor. | 
		
	
		
			
			|  |  |  | This will decrement the object's reference-count, which will cause the | 
		
	
		
			
			|  |  |  | object to be deleted when the ref-count hits zero. | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/midi/MidiMessage.cpp b/source/modules/water/midi/MidiMessage.cpp | 
		
	
		
			
			|  |  |  | index 21c90f508..a4354222e 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/midi/MidiMessage.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/midi/MidiMessage.cpp | 
		
	
		
			
			|  |  |  | @@ -286,24 +286,6 @@ MidiMessage& MidiMessage::operator= (const MidiMessage& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -MidiMessage::MidiMessage (MidiMessage&& other) noexcept | 
		
	
		
			
			|  |  |  | -   : timeStamp (other.timeStamp), size (other.size) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    packedData.allocatedData = other.packedData.allocatedData; | 
		
	
		
			
			|  |  |  | -    other.size = 0; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -MidiMessage& MidiMessage::operator= (MidiMessage&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    packedData.allocatedData = other.packedData.allocatedData; | 
		
	
		
			
			|  |  |  | -    timeStamp = other.timeStamp; | 
		
	
		
			
			|  |  |  | -    size = other.size; | 
		
	
		
			
			|  |  |  | -    other.size = 0; | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | MidiMessage::~MidiMessage() noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | if (isHeapAllocated()) | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/midi/MidiMessage.h b/source/modules/water/midi/MidiMessage.h | 
		
	
		
			
			|  |  |  | index 07f15c467..6b78d55f8 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/midi/MidiMessage.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/midi/MidiMessage.h | 
		
	
		
			
			|  |  |  | @@ -113,11 +113,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Copies this message from another one. */ | 
		
	
		
			
			|  |  |  | MidiMessage& operator= (const MidiMessage& other); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    MidiMessage (MidiMessage&&) noexcept; | 
		
	
		
			
			|  |  |  | -    MidiMessage& operator= (MidiMessage&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | //============================================================================== | 
		
	
		
			
			|  |  |  | /** Returns a pointer to the raw midi data. | 
		
	
		
			
			|  |  |  | @see getRawDataSize | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/midi/MidiMessageSequence.h b/source/modules/water/midi/MidiMessageSequence.h | 
		
	
		
			
			|  |  |  | index f85f5fd05..bfe27d061 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/midi/MidiMessageSequence.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/midi/MidiMessageSequence.h | 
		
	
		
			
			|  |  |  | @@ -55,18 +55,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Replaces this sequence with another one. */ | 
		
	
		
			
			|  |  |  | MidiMessageSequence& operator= (const MidiMessageSequence&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    MidiMessageSequence (MidiMessageSequence&& other) noexcept | 
		
	
		
			
			|  |  |  | -        : list (static_cast<OwnedArray<MidiEventHolder>&&> (other.list)) | 
		
	
		
			
			|  |  |  | -    {} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    MidiMessageSequence& operator= (MidiMessageSequence&& other) noexcept | 
		
	
		
			
			|  |  |  | -    { | 
		
	
		
			
			|  |  |  | -        list = static_cast<OwnedArray<MidiEventHolder>&&> (other.list); | 
		
	
		
			
			|  |  |  | -        return *this; | 
		
	
		
			
			|  |  |  | -    } | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Destructor. */ | 
		
	
		
			
			|  |  |  | ~MidiMessageSequence(); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/misc/Result.cpp b/source/modules/water/misc/Result.cpp | 
		
	
		
			
			|  |  |  | index b8706e771..49f1f85e1 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/misc/Result.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/misc/Result.cpp | 
		
	
		
			
			|  |  |  | @@ -45,19 +45,6 @@ Result& Result::operator= (const Result& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -Result::Result (Result&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : errorMessage (static_cast<String&&> (other.errorMessage)) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -Result& Result::operator= (Result&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    errorMessage = static_cast<String&&> (other.errorMessage); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool Result::operator== (const Result& other) const noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | return errorMessage == other.errorMessage; | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/misc/Result.h b/source/modules/water/misc/Result.h | 
		
	
		
			
			|  |  |  | index ab4cf9bf1..495a19fc9 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/misc/Result.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/misc/Result.h | 
		
	
		
			
			|  |  |  | @@ -100,11 +100,6 @@ public: | 
		
	
		
			
			|  |  |  | Result (const Result&); | 
		
	
		
			
			|  |  |  | Result& operator= (const Result&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    Result (Result&&) noexcept; | 
		
	
		
			
			|  |  |  | -    Result& operator= (Result&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool operator== (const Result& other) const noexcept; | 
		
	
		
			
			|  |  |  | bool operator!= (const Result& other) const noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/Identifier.cpp b/source/modules/water/text/Identifier.cpp | 
		
	
		
			
			|  |  |  | index e542d6eeb..3f1850369 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/Identifier.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/Identifier.cpp | 
		
	
		
			
			|  |  |  | @@ -32,16 +32,6 @@ Identifier::~Identifier() noexcept {} | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | Identifier::Identifier (const Identifier& other) noexcept  : name (other.name) {} | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -Identifier::Identifier (Identifier&& other) noexcept : name (static_cast<String&&> (other.name)) {} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -Identifier& Identifier::operator= (Identifier&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    name = static_cast<String&&> (other.name); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | Identifier& Identifier::operator= (const Identifier& other) noexcept | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | name = other.name; | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/Identifier.h b/source/modules/water/text/Identifier.h | 
		
	
		
			
			|  |  |  | index a044b3a3a..ab768cd10 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/Identifier.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/Identifier.h | 
		
	
		
			
			|  |  |  | @@ -70,14 +70,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Creates a copy of another identifier. */ | 
		
	
		
			
			|  |  |  | Identifier& operator= (const Identifier& other) noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Creates a copy of another identifier. */ | 
		
	
		
			
			|  |  |  | -    Identifier (Identifier&& other) noexcept; | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    /** Creates a copy of another identifier. */ | 
		
	
		
			
			|  |  |  | -    Identifier& operator= (Identifier&& other) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Destructor */ | 
		
	
		
			
			|  |  |  | ~Identifier() noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/String.cpp b/source/modules/water/text/String.cpp | 
		
	
		
			
			|  |  |  | index 51b20bc25..1dd593468 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/String.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/String.cpp | 
		
	
		
			
			|  |  |  | @@ -247,19 +247,6 @@ String& String::operator= (const String& other) noexcept | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -String::String (String&& other) noexcept   : text (other.text) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    other.text = &(emptyString.text); | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -String& String::operator= (String&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    std::swap (text, other.text); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | inline String::PreallocationBytes::PreallocationBytes (const size_t num) noexcept : numBytes (num) {} | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | String::String (const PreallocationBytes& preallocationSize) | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/String.h b/source/modules/water/text/String.h | 
		
	
		
			
			|  |  |  | index 0a0ba99f1..ffa8ecf3b 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/String.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/String.h | 
		
	
		
			
			|  |  |  | @@ -56,10 +56,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Creates a copy of another string. */ | 
		
	
		
			
			|  |  |  | String (const String& other) noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    String (String&& other) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Creates a string from a zero-terminated ascii text string. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | The string passed-in must not contain any characters with a value above 127, because | 
		
	
		
			
			|  |  |  | @@ -139,10 +135,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Replaces this string's contents with another string. */ | 
		
	
		
			
			|  |  |  | String& operator= (const String& other) noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    String& operator= (String&& other) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Appends another string at the end of this one. */ | 
		
	
		
			
			|  |  |  | String& operator+= (const String& stringToAppend); | 
		
	
		
			
			|  |  |  | /** Appends another string at the end of this one. */ | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/StringArray.cpp b/source/modules/water/text/StringArray.cpp | 
		
	
		
			
			|  |  |  | index c0fddb5db..36856f4a7 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/StringArray.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/StringArray.cpp | 
		
	
		
			
			|  |  |  | @@ -36,13 +36,6 @@ StringArray::StringArray (const StringArray& other) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -StringArray::StringArray (StringArray&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : strings (static_cast<Array <String>&&> (other.strings)) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | StringArray::StringArray (const String& firstValue) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | strings.add (firstValue); | 
		
	
		
			
			|  |  |  | @@ -69,14 +62,6 @@ StringArray& StringArray::operator= (const StringArray& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -StringArray& StringArray::operator= (StringArray&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    strings = static_cast<Array<String>&&> (other.strings); | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | StringArray::~StringArray() | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  | @@ -125,13 +110,6 @@ bool StringArray::add (const String& newString) | 
		
	
		
			
			|  |  |  | return strings.add (newString); | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -bool StringArray::add (String&& stringToAdd) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    return strings.add (static_cast<String&&> (stringToAdd)); | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | bool StringArray::insert (const int index, const String& newString) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | return strings.insert (index, newString); | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/text/StringArray.h b/source/modules/water/text/StringArray.h | 
		
	
		
			
			|  |  |  | index 57ed5d300..d7244a066 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/text/StringArray.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/text/StringArray.h | 
		
	
		
			
			|  |  |  | @@ -47,10 +47,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Creates a copy of another string array */ | 
		
	
		
			
			|  |  |  | StringArray (const StringArray&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    StringArray (StringArray&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Creates an array containing a single string. */ | 
		
	
		
			
			|  |  |  | explicit StringArray (const String& firstValue); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @@ -80,10 +76,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Copies the contents of another string array into this one */ | 
		
	
		
			
			|  |  |  | StringArray& operator= (const StringArray&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    StringArray& operator= (StringArray&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Swaps the contents of this and another StringArray. */ | 
		
	
		
			
			|  |  |  | void swapWith (StringArray&) noexcept; | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | @@ -159,11 +151,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Appends a string at the end of the array. */ | 
		
	
		
			
			|  |  |  | bool add (const String& stringToAdd); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    /** Appends a string at the end of the array. */ | 
		
	
		
			
			|  |  |  | -    bool add (String&& stringToAdd); | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Inserts a string into the array. | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | This will insert a string into the array at the given index, moving | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/water.h b/source/modules/water/water.h | 
		
	
		
			
			|  |  |  | index 33b908c27..d8305a0ee 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/water.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/water.h | 
		
	
		
			
			|  |  |  | @@ -32,18 +32,12 @@ | 
		
	
		
			
			|  |  |  | // Compiler support | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | #if (__cplusplus >= 201103L || defined (__GXX_EXPERIMENTAL_CXX0X__)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 | 
		
	
		
			
			|  |  |  | - #define WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS 1 | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | #if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && ! defined (WATER_DELETED_FUNCTION) | 
		
	
		
			
			|  |  |  | #define WATER_DELETED_FUNCTION = delete | 
		
	
		
			
			|  |  |  | #endif | 
		
	
		
			
			|  |  |  | #endif | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | #ifdef __clang__ | 
		
	
		
			
			|  |  |  | - #if __has_feature (cxx_implicit_moves) && __clang_major__ >= 9 | 
		
	
		
			
			|  |  |  | -  #define WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS 1 | 
		
	
		
			
			|  |  |  | - #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | #if __has_feature (cxx_deleted_functions) | 
		
	
		
			
			|  |  |  | #define WATER_DELETED_FUNCTION = delete | 
		
	
		
			
			|  |  |  | #endif | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/xml/XmlElement.cpp b/source/modules/water/xml/XmlElement.cpp | 
		
	
		
			
			|  |  |  | index 2de0fa34e..92bfecc7e 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/xml/XmlElement.cpp | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/xml/XmlElement.cpp | 
		
	
		
			
			|  |  |  | @@ -133,31 +133,6 @@ XmlElement& XmlElement::operator= (const XmlElement& other) | 
		
	
		
			
			|  |  |  | return *this; | 
		
	
		
			
			|  |  |  | } | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -XmlElement::XmlElement (XmlElement&& other) noexcept | 
		
	
		
			
			|  |  |  | -    : nextListItem      (static_cast<LinkedListPointer<XmlElement>&&> (other.nextListItem)), | 
		
	
		
			
			|  |  |  | -      firstChildElement (static_cast<LinkedListPointer<XmlElement>&&> (other.firstChildElement)), | 
		
	
		
			
			|  |  |  | -      attributes        (static_cast<LinkedListPointer<XmlAttributeNode>&&> (other.attributes)), | 
		
	
		
			
			|  |  |  | -      tagName           (static_cast<String&&> (other.tagName)) | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -XmlElement& XmlElement::operator= (XmlElement&& other) noexcept | 
		
	
		
			
			|  |  |  | -{ | 
		
	
		
			
			|  |  |  | -    wassert (this != &other); // hopefully the compiler should make this situation impossible! | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    removeAllAttributes(); | 
		
	
		
			
			|  |  |  | -    deleteAllChildElements(); | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    nextListItem      = static_cast<LinkedListPointer<XmlElement>&&> (other.nextListItem); | 
		
	
		
			
			|  |  |  | -    firstChildElement = static_cast<LinkedListPointer<XmlElement>&&> (other.firstChildElement); | 
		
	
		
			
			|  |  |  | -    attributes        = static_cast<LinkedListPointer<XmlAttributeNode>&&> (other.attributes); | 
		
	
		
			
			|  |  |  | -    tagName           = static_cast<String&&> (other.tagName); | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | -    return *this; | 
		
	
		
			
			|  |  |  | -} | 
		
	
		
			
			|  |  |  | -#endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | void XmlElement::copyChildrenAndAttributesFrom (const XmlElement& other) | 
		
	
		
			
			|  |  |  | { | 
		
	
		
			
			|  |  |  | wassert (firstChildElement.get() == nullptr); | 
		
	
		
			
			|  |  |  | diff --git a/source/modules/water/xml/XmlElement.h b/source/modules/water/xml/XmlElement.h | 
		
	
		
			
			|  |  |  | index d27b7d98d..273d28e4c 100644 | 
		
	
		
			
			|  |  |  | --- a/source/modules/water/xml/XmlElement.h | 
		
	
		
			
			|  |  |  | +++ b/source/modules/water/xml/XmlElement.h | 
		
	
		
			
			|  |  |  | @@ -166,11 +166,6 @@ public: | 
		
	
		
			
			|  |  |  | /** Creates a (deep) copy of another element. */ | 
		
	
		
			
			|  |  |  | XmlElement& operator= (const XmlElement&); | 
		
	
		
			
			|  |  |  |  | 
		
	
		
			
			|  |  |  | -   #if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS | 
		
	
		
			
			|  |  |  | -    XmlElement (XmlElement&&) noexcept; | 
		
	
		
			
			|  |  |  | -    XmlElement& operator= (XmlElement&&) noexcept; | 
		
	
		
			
			|  |  |  | -   #endif | 
		
	
		
			
			|  |  |  | - | 
		
	
		
			
			|  |  |  | /** Deleting an XmlElement will also delete all of its child elements. */ | 
		
	
		
			
			|  |  |  | ~XmlElement() noexcept; | 
		
	
		
			
			|  |  |  |  |