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&&> (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&&> (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&& other) noexcept - : data (static_cast&&> (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&&> (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(numUsed + 1))) - return false; - - new (data.elements + numUsed++) ElementType (static_cast (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 ArrayAllocationBase { -#if WATER_COMPILER_SUPPORTS_MOVE_SEMANTICS -private: - #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 5 - template - struct IsTriviallyCopyable : std::integral_constant {}; - #else - template - using IsTriviallyCopyable = std::is_trivially_copyable; - #endif - - template - using TriviallyCopyableVoid = typename std::enable_if::value, void>::type; - - template - using TriviallyCopyableBool = typename std::enable_if::value, bool>::type; - - template - using NonTriviallyCopyableVoid = typename std::enable_if::value, void>::type; - - template - using NonTriviallyCopyableBool = typename std::enable_if::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&& other) noexcept - : elements (static_cast&&> (other.elements)), - numAllocated (other.numAllocated) {} - - ArrayAllocationBase& operator= (ArrayAllocationBase&& other) noexcept - { - elements = static_cast&&> (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 TriviallyCopyableBool - #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 - NonTriviallyCopyableBool setAllocatedSize (const size_t numNewElements) noexcept - { - if (numAllocated == numNewElements) - return true; - - if (numNewElements > 0) - { - HeapBlock 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 TriviallyCopyableVoid - #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 - NonTriviallyCopyableVoid 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 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&&> (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 (newValue); - return true; - } - - values.add (NamedValue (name, static_cast (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 (other.name)), - value (static_cast (other.value)) - { - } - - NamedValue (Identifier&& n, var&& v) noexcept - : name (static_cast (n)), - value (static_cast (v)) - { - } - - NamedValue& operator= (NamedValue&& other) noexcept - { - name = static_cast (other.name); - value = static_cast (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&&> (other.data)), - numUsed (other.numUsed) - { - other.numUsed = 0; - } - - OwnedArray& operator= (OwnedArray&& other) noexcept - { - deleteAllObjects(); - - data = static_cast&&> (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 (v)); -} - -var& var::operator= (String&& v) -{ - type->cleanUp (value); - type = &VariantType_String::instance; - new (value.stringValue) String (static_cast (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 (other.fullPath)) -{ -} - -File& File::operator= (File&& other) noexcept -{ - fullPath = static_cast (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&&> (other.data)), - size (other.size) -{ -} - -MemoryBlock& MemoryBlock::operator= (MemoryBlock&& other) noexcept -{ - data = static_cast&&> (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&&> (other.list)) - {} - - MidiMessageSequence& operator= (MidiMessageSequence&& other) noexcept - { - list = static_cast&&> (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 (other.errorMessage)) -{ -} - -Result& Result::operator= (Result&& other) noexcept -{ - errorMessage = static_cast (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 (other.name)) {} - -Identifier& Identifier::operator= (Identifier&& other) noexcept -{ - name = static_cast (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&&> (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&&> (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 (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&&> (other.nextListItem)), - firstChildElement (static_cast&&> (other.firstChildElement)), - attributes (static_cast&&> (other.attributes)), - tagName (static_cast (other.tagName)) -{ -} - -XmlElement& XmlElement::operator= (XmlElement&& other) noexcept -{ - wassert (this != &other); // hopefully the compiler should make this situation impossible! - - removeAllAttributes(); - deleteAllChildElements(); - - nextListItem = static_cast&&> (other.nextListItem); - firstChildElement = static_cast&&> (other.firstChildElement); - attributes = static_cast&&> (other.attributes); - tagName = static_cast (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;