mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Added a compiler error if your compiler is too old and removed numerous code checks for old compilers which are now deprecated
This commit is contained in:
parent
871236d4cd
commit
9f3fb1c0a6
80 changed files with 121 additions and 263 deletions
|
|
@ -2055,8 +2055,6 @@ PREDEFINED = WIN32=1 \
|
||||||
JUCE_LINUX=1 \
|
JUCE_LINUX=1 \
|
||||||
DOXYGEN=1 \
|
DOXYGEN=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_NOEXCEPT=1 \
|
JUCE_COMPILER_SUPPORTS_NOEXCEPT=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_NULLPTR=1 \
|
|
||||||
JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS=1 \
|
|
||||||
JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS=1 \
|
JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES=1 \
|
JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL=1 \
|
JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL=1 \
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
#include "../JuceDemoHeader.h"
|
#include "../JuceDemoHeader.h"
|
||||||
|
|
||||||
// these classes are C++11-only
|
// these classes are C++11-only
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS && JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
#if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
||||||
|
|
||||||
struct DemoFlexPanel : public juce::Component,
|
struct DemoFlexPanel : public juce::Component,
|
||||||
private juce::TextEditor::Listener,
|
private juce::TextEditor::Listener,
|
||||||
|
|
|
||||||
|
|
@ -2066,8 +2066,6 @@ PREDEFINED = WIN32=1 \
|
||||||
JUCE_LINUX=1 \
|
JUCE_LINUX=1 \
|
||||||
DOXYGEN=1 \
|
DOXYGEN=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_NOEXCEPT=1 \
|
JUCE_COMPILER_SUPPORTS_NOEXCEPT=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_NULLPTR=1 \
|
|
||||||
JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS=1 \
|
|
||||||
JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS=1 \
|
JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES=1 \
|
JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES=1 \
|
||||||
JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL=1 \
|
JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL=1 \
|
||||||
|
|
|
||||||
|
|
@ -371,7 +371,7 @@ public:
|
||||||
{
|
{
|
||||||
// If you're using interleaved data, call the other constructor! If you're using non-interleaved data,
|
// If you're using interleaved data, call the other constructor! If you're using non-interleaved data,
|
||||||
// you should pass NonInterleaved as the template parameter for the interleaving type!
|
// you should pass NonInterleaved as the template parameter for the interleaving type!
|
||||||
static_jassert (InterleavingType::isInterleavedType == 0);
|
static_assert (InterleavingType::isInterleavedType == 0, "Incorrect constructor for interleaved data");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Creates a pointer from some raw data in the appropriate format with the specified number of interleaved channels.
|
/** Creates a pointer from some raw data in the appropriate format with the specified number of interleaved channels.
|
||||||
|
|
@ -411,7 +411,8 @@ public:
|
||||||
*/
|
*/
|
||||||
inline void setAsFloat (float newValue) noexcept
|
inline void setAsFloat (float newValue) noexcept
|
||||||
{
|
{
|
||||||
static_jassert (Constness::isConst == 0); // trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
// trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
||||||
|
static_assert (Constness::isConst == 0, "Attempt to write to a const pointer");
|
||||||
Endianness::setAsFloat (data, newValue);
|
Endianness::setAsFloat (data, newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -428,7 +429,8 @@ public:
|
||||||
*/
|
*/
|
||||||
inline void setAsInt32 (int32 newValue) noexcept
|
inline void setAsInt32 (int32 newValue) noexcept
|
||||||
{
|
{
|
||||||
static_jassert (Constness::isConst == 0); // trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
// trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
||||||
|
static_assert (Constness::isConst == 0, "Attempt to write to a const pointer");
|
||||||
Endianness::setAsInt32 (data, newValue);
|
Endianness::setAsInt32 (data, newValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -446,7 +448,8 @@ public:
|
||||||
*/
|
*/
|
||||||
void convertSamples (Pointer source, int numSamples) const noexcept
|
void convertSamples (Pointer source, int numSamples) const noexcept
|
||||||
{
|
{
|
||||||
static_jassert (Constness::isConst == 0); // trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
// trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
||||||
|
static_assert (Constness::isConst == 0, "Attempt to write to a const pointer");
|
||||||
|
|
||||||
for (Pointer dest (*this); --numSamples >= 0;)
|
for (Pointer dest (*this); --numSamples >= 0;)
|
||||||
{
|
{
|
||||||
|
|
@ -462,7 +465,8 @@ public:
|
||||||
template <class OtherPointerType>
|
template <class OtherPointerType>
|
||||||
void convertSamples (OtherPointerType source, int numSamples) const noexcept
|
void convertSamples (OtherPointerType source, int numSamples) const noexcept
|
||||||
{
|
{
|
||||||
static_jassert (Constness::isConst == 0); // trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
// trying to write to a const pointer! For a writeable one, use AudioData::NonConst instead!
|
||||||
|
static_assert (Constness::isConst == 0, "Attempt to write to a const pointer");
|
||||||
|
|
||||||
Pointer dest (*this);
|
Pointer dest (*this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,6 @@ public:
|
||||||
*/
|
*/
|
||||||
~AudioBuffer() noexcept {}
|
~AudioBuffer() noexcept {}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Move constructor */
|
/** Move constructor */
|
||||||
AudioBuffer (AudioBuffer&& other) noexcept
|
AudioBuffer (AudioBuffer&& other) noexcept
|
||||||
: numChannels (other.numChannels),
|
: numChannels (other.numChannels),
|
||||||
|
|
@ -221,7 +220,6 @@ public:
|
||||||
other.allocatedBytes = 0;
|
other.allocatedBytes = 0;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns the number of channels of audio data that this buffer contains.
|
/** Returns the number of channels of audio data that this buffer contains.
|
||||||
|
|
|
||||||
|
|
@ -285,7 +285,6 @@ MidiMessage& MidiMessage::operator= (const MidiMessage& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
MidiMessage::MidiMessage (MidiMessage&& other) noexcept
|
MidiMessage::MidiMessage (MidiMessage&& other) noexcept
|
||||||
: timeStamp (other.timeStamp), size (other.size)
|
: timeStamp (other.timeStamp), size (other.size)
|
||||||
{
|
{
|
||||||
|
|
@ -301,7 +300,6 @@ MidiMessage& MidiMessage::operator= (MidiMessage&& other) noexcept
|
||||||
other.size = 0;
|
other.size = 0;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
MidiMessage::~MidiMessage() noexcept
|
MidiMessage::~MidiMessage() noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -115,10 +115,11 @@ public:
|
||||||
/** Copies this message from another one. */
|
/** Copies this message from another one. */
|
||||||
MidiMessage& operator= (const MidiMessage& other);
|
MidiMessage& operator= (const MidiMessage& other);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
MidiMessage (MidiMessage&&) noexcept;
|
MidiMessage (MidiMessage&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
MidiMessage& operator= (MidiMessage&&) noexcept;
|
MidiMessage& operator= (MidiMessage&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns a pointer to the raw midi data.
|
/** Returns a pointer to the raw midi data.
|
||||||
|
|
|
||||||
|
|
@ -54,17 +54,17 @@ public:
|
||||||
/** Replaces this sequence with another one. */
|
/** Replaces this sequence with another one. */
|
||||||
MidiMessageSequence& operator= (const MidiMessageSequence&);
|
MidiMessageSequence& operator= (const MidiMessageSequence&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
MidiMessageSequence (MidiMessageSequence&& other) noexcept
|
MidiMessageSequence (MidiMessageSequence&& other) noexcept
|
||||||
: list (static_cast<OwnedArray<MidiEventHolder>&&> (other.list))
|
: list (static_cast<OwnedArray<MidiEventHolder>&&> (other.list))
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
MidiMessageSequence& operator= (MidiMessageSequence&& other) noexcept
|
MidiMessageSequence& operator= (MidiMessageSequence&& other) noexcept
|
||||||
{
|
{
|
||||||
list = static_cast<OwnedArray<MidiEventHolder>&&> (other.list);
|
list = static_cast<OwnedArray<MidiEventHolder>&&> (other.list);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~MidiMessageSequence();
|
~MidiMessageSequence();
|
||||||
|
|
|
||||||
|
|
@ -84,14 +84,12 @@ public:
|
||||||
new (data.elements + i) ElementType (other.data.elements[i]);
|
new (data.elements + i) ElementType (other.data.elements[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Array (Array<ElementType, TypeOfCriticalSectionToUse>&& other) noexcept
|
Array (Array<ElementType, TypeOfCriticalSectionToUse>&& other) noexcept
|
||||||
: data (static_cast<ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>&&> (other.data)),
|
: data (static_cast<ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>&&> (other.data)),
|
||||||
numUsed (other.numUsed)
|
numUsed (other.numUsed)
|
||||||
{
|
{
|
||||||
other.numUsed = 0;
|
other.numUsed = 0;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Initalises from a null-terminated C array of values.
|
/** Initalises from a null-terminated C array of values.
|
||||||
|
|
||||||
|
|
@ -146,7 +144,6 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Array& operator= (Array&& other) noexcept
|
Array& operator= (Array&& other) noexcept
|
||||||
{
|
{
|
||||||
const ScopedLockType lock (getLock());
|
const ScopedLockType lock (getLock());
|
||||||
|
|
@ -156,7 +153,6 @@ public:
|
||||||
other.numUsed = 0;
|
other.numUsed = 0;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Compares this array to another one.
|
/** Compares this array to another one.
|
||||||
|
|
@ -403,7 +399,6 @@ public:
|
||||||
new (data.elements + numUsed++) ElementType (newElement);
|
new (data.elements + numUsed++) ElementType (newElement);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Appends a new element at the end of the array.
|
/** Appends a new element at the end of the array.
|
||||||
|
|
||||||
@param newElement the new object to add to the array
|
@param newElement the new object to add to the array
|
||||||
|
|
@ -415,7 +410,6 @@ public:
|
||||||
data.ensureAllocatedSize (numUsed + 1);
|
data.ensureAllocatedSize (numUsed + 1);
|
||||||
new (data.elements + numUsed++) ElementType (static_cast<ElementType&&> (newElement));
|
new (data.elements + numUsed++) ElementType (static_cast<ElementType&&> (newElement));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Inserts a new element into the array at a given position.
|
/** Inserts a new element into the array at a given position.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,6 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
ArrayAllocationBase (ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>&& other) noexcept
|
ArrayAllocationBase (ArrayAllocationBase<ElementType, TypeOfCriticalSectionToUse>&& other) noexcept
|
||||||
: elements (static_cast<HeapBlock<ElementType>&&> (other.elements)),
|
: elements (static_cast<HeapBlock<ElementType>&&> (other.elements)),
|
||||||
numAllocated (other.numAllocated)
|
numAllocated (other.numAllocated)
|
||||||
|
|
@ -73,7 +72,6 @@ public:
|
||||||
numAllocated = other.numAllocated;
|
numAllocated = other.numAllocated;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Changes the amount of storage allocated.
|
/** Changes the amount of storage allocated.
|
||||||
|
|
|
||||||
|
|
@ -83,7 +83,6 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
LinkedListPointer (LinkedListPointer&& other) noexcept
|
LinkedListPointer (LinkedListPointer&& other) noexcept
|
||||||
: item (other.item)
|
: item (other.item)
|
||||||
{
|
{
|
||||||
|
|
@ -98,7 +97,6 @@ public:
|
||||||
other.item = nullptr;
|
other.item = nullptr;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns the item which this pointer points to. */
|
/** Returns the item which this pointer points to. */
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,6 @@ NamedValueSet& NamedValueSet::operator= (const NamedValueSet& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
NamedValueSet::NamedValueSet (NamedValueSet&& other) noexcept
|
NamedValueSet::NamedValueSet (NamedValueSet&& other) noexcept
|
||||||
: values (static_cast<Array<NamedValue>&&> (other.values))
|
: values (static_cast<Array<NamedValue>&&> (other.values))
|
||||||
{
|
{
|
||||||
|
|
@ -56,7 +55,6 @@ NamedValueSet& NamedValueSet::operator= (NamedValueSet&& other) noexcept
|
||||||
other.values.swapWith (values);
|
other.values.swapWith (values);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
NamedValueSet::~NamedValueSet() noexcept
|
NamedValueSet::~NamedValueSet() noexcept
|
||||||
{
|
{
|
||||||
|
|
@ -122,7 +120,6 @@ var* NamedValueSet::getVarPointer (const Identifier& name) const noexcept
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
bool NamedValueSet::set (const Identifier& name, var&& newValue)
|
bool NamedValueSet::set (const Identifier& name, var&& newValue)
|
||||||
{
|
{
|
||||||
if (var* const v = getVarPointer (name))
|
if (var* const v = getVarPointer (name))
|
||||||
|
|
@ -137,7 +134,6 @@ bool NamedValueSet::set (const Identifier& name, var&& newValue)
|
||||||
values.add (NamedValue (name, static_cast<var&&> (newValue)));
|
values.add (NamedValue (name, static_cast<var&&> (newValue)));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool NamedValueSet::set (const Identifier& name, const var& newValue)
|
bool NamedValueSet::set (const Identifier& name, const var& newValue)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -50,10 +50,11 @@ public:
|
||||||
/** Replaces this set with a copy of another set. */
|
/** Replaces this set with a copy of another set. */
|
||||||
NamedValueSet& operator= (const NamedValueSet&);
|
NamedValueSet& operator= (const NamedValueSet&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
NamedValueSet (NamedValueSet&&) noexcept;
|
NamedValueSet (NamedValueSet&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
NamedValueSet& operator= (NamedValueSet&&) noexcept;
|
NamedValueSet& operator= (NamedValueSet&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~NamedValueSet() noexcept;
|
~NamedValueSet() noexcept;
|
||||||
|
|
@ -68,7 +69,6 @@ public:
|
||||||
NamedValue (const Identifier& n, const var& v) : name (n), value (v) {}
|
NamedValue (const Identifier& n, const var& v) : name (n), value (v) {}
|
||||||
NamedValue (const NamedValue& other) : name (other.name), value (other.value) {}
|
NamedValue (const NamedValue& other) : name (other.name), value (other.value) {}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
NamedValue (NamedValue&& other) noexcept
|
NamedValue (NamedValue&& other) noexcept
|
||||||
: name (static_cast<Identifier&&> (other.name)),
|
: name (static_cast<Identifier&&> (other.name)),
|
||||||
value (static_cast<var&&> (other.value))
|
value (static_cast<var&&> (other.value))
|
||||||
|
|
@ -87,7 +87,6 @@ public:
|
||||||
value = static_cast<var&&> (other.value);
|
value = static_cast<var&&> (other.value);
|
||||||
return *this;
|
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 name == other.name && value == other.value; }
|
||||||
bool operator!= (const NamedValue& other) const noexcept { return ! operator== (other); }
|
bool operator!= (const NamedValue& other) const noexcept { return ! operator== (other); }
|
||||||
|
|
@ -124,13 +123,11 @@ public:
|
||||||
*/
|
*/
|
||||||
bool set (const Identifier& name, const var& newValue);
|
bool set (const Identifier& name, const var& newValue);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Changes or adds a named value.
|
/** Changes or adds a named value.
|
||||||
@returns true if a value was changed or added; false if the
|
@returns true if a value was changed or added; false if the
|
||||||
value was already set the value passed-in.
|
value was already set the value passed-in.
|
||||||
*/
|
*/
|
||||||
bool set (const Identifier& name, var&& newValue);
|
bool set (const Identifier& name, var&& newValue);
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Returns true if the set contains an item with the specified name. */
|
/** Returns true if the set contains an item with the specified name. */
|
||||||
bool contains (const Identifier& name) const noexcept;
|
bool contains (const Identifier& name) const noexcept;
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ public:
|
||||||
deleteAllObjects();
|
deleteAllObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
OwnedArray (OwnedArray&& other) noexcept
|
OwnedArray (OwnedArray&& other) noexcept
|
||||||
: data (static_cast<ArrayAllocationBase <ObjectClass*, TypeOfCriticalSectionToUse>&&> (other.data)),
|
: data (static_cast<ArrayAllocationBase <ObjectClass*, TypeOfCriticalSectionToUse>&&> (other.data)),
|
||||||
numUsed (other.numUsed)
|
numUsed (other.numUsed)
|
||||||
|
|
@ -82,6 +82,7 @@ public:
|
||||||
other.numUsed = 0;
|
other.numUsed = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
OwnedArray& operator= (OwnedArray&& other) noexcept
|
OwnedArray& operator= (OwnedArray&& other) noexcept
|
||||||
{
|
{
|
||||||
const ScopedLockType lock (getLock());
|
const ScopedLockType lock (getLock());
|
||||||
|
|
@ -92,7 +93,6 @@ public:
|
||||||
other.numUsed = 0;
|
other.numUsed = 0;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Clears the array, optionally deleting the objects inside it first. */
|
/** Clears the array, optionally deleting the objects inside it first. */
|
||||||
|
|
|
||||||
|
|
@ -358,9 +358,7 @@ public:
|
||||||
struct RefCountedArray : public ReferenceCountedObject
|
struct RefCountedArray : public ReferenceCountedObject
|
||||||
{
|
{
|
||||||
RefCountedArray (const Array<var>& a) : array (a) { incReferenceCount(); }
|
RefCountedArray (const Array<var>& a) : array (a) { incReferenceCount(); }
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
RefCountedArray (Array<var>&& a) : array (static_cast<Array<var>&&> (a)) { incReferenceCount(); }
|
RefCountedArray (Array<var>&& a) : array (static_cast<Array<var>&&> (a)) { incReferenceCount(); }
|
||||||
#endif
|
|
||||||
Array<var> array;
|
Array<var> array;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -527,7 +525,6 @@ var& var::operator= (const Array<var>& v) { var v2 (v); swapWith (v2); re
|
||||||
var& var::operator= (ReferenceCountedObject* v) { var v2 (v); swapWith (v2); return *this; }
|
var& var::operator= (ReferenceCountedObject* v) { var v2 (v); swapWith (v2); return *this; }
|
||||||
var& var::operator= (NativeFunction v) { var v2 (v); swapWith (v2); return *this; }
|
var& var::operator= (NativeFunction v) { var v2 (v); swapWith (v2); return *this; }
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
var::var (var&& other) noexcept
|
var::var (var&& other) noexcept
|
||||||
: type (other.type),
|
: type (other.type),
|
||||||
value (other.value)
|
value (other.value)
|
||||||
|
|
@ -563,7 +560,6 @@ var& var::operator= (String&& v)
|
||||||
new (value.stringValue) String (static_cast<String&&> (v));
|
new (value.stringValue) String (static_cast<String&&> (v));
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
bool var::equals (const var& other) const noexcept
|
bool var::equals (const var& other) const noexcept
|
||||||
|
|
|
||||||
|
|
@ -109,14 +109,12 @@ public:
|
||||||
var& operator= (ReferenceCountedObject* object);
|
var& operator= (ReferenceCountedObject* object);
|
||||||
var& operator= (NativeFunction method);
|
var& operator= (NativeFunction method);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
var (var&&) noexcept;
|
var (var&&) noexcept;
|
||||||
var (String&&);
|
var (String&&);
|
||||||
var (MemoryBlock&&);
|
var (MemoryBlock&&);
|
||||||
var (Array<var>&&);
|
var (Array<var>&&);
|
||||||
var& operator= (var&&) noexcept;
|
var& operator= (var&&) noexcept;
|
||||||
var& operator= (String&&);
|
var& operator= (String&&);
|
||||||
#endif
|
|
||||||
|
|
||||||
void swapWith (var& other) noexcept;
|
void swapWith (var& other) noexcept;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,6 @@ File& File::operator= (const File& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
File::File (File&& other) noexcept
|
File::File (File&& other) noexcept
|
||||||
: fullPath (static_cast<String&&> (other.fullPath))
|
: fullPath (static_cast<String&&> (other.fullPath))
|
||||||
{
|
{
|
||||||
|
|
@ -68,7 +67,6 @@ File& File::operator= (File&& other) noexcept
|
||||||
fullPath = static_cast<String&&> (other.fullPath);
|
fullPath = static_cast<String&&> (other.fullPath);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if JUCE_ALLOW_STATIC_NULL_VARIABLES
|
#if JUCE_ALLOW_STATIC_NULL_VARIABLES
|
||||||
const File File::nonexistent;
|
const File File::nonexistent;
|
||||||
|
|
|
||||||
|
|
@ -90,10 +90,11 @@ public:
|
||||||
/** Copies from another file object. */
|
/** Copies from another file object. */
|
||||||
File& operator= (const File& otherFile);
|
File& operator= (const File& otherFile);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
File (File&&) noexcept;
|
File (File&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
File& operator= (File&&) noexcept;
|
File& operator= (File&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#if JUCE_ALLOW_STATIC_NULL_VARIABLES
|
#if JUCE_ALLOW_STATIC_NULL_VARIABLES
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,6 @@ BigInteger::BigInteger (const BigInteger& other)
|
||||||
memcpy (getValues(), other.getValues(), sizeof (uint32) * allocatedSize);
|
memcpy (getValues(), other.getValues(), sizeof (uint32) * allocatedSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
BigInteger::BigInteger (BigInteger&& other) noexcept
|
BigInteger::BigInteger (BigInteger&& other) noexcept
|
||||||
: heapAllocation (static_cast<HeapBlock<uint32>&&> (other.heapAllocation)),
|
: heapAllocation (static_cast<HeapBlock<uint32>&&> (other.heapAllocation)),
|
||||||
allocatedSize (other.allocatedSize),
|
allocatedSize (other.allocatedSize),
|
||||||
|
|
@ -138,7 +137,6 @@ BigInteger& BigInteger::operator= (BigInteger&& other) noexcept
|
||||||
negative = other.negative;
|
negative = other.negative;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
BigInteger::~BigInteger()
|
BigInteger::~BigInteger()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -69,10 +69,11 @@ public:
|
||||||
/** Creates a copy of another BigInteger. */
|
/** Creates a copy of another BigInteger. */
|
||||||
BigInteger (const BigInteger&);
|
BigInteger (const BigInteger&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
BigInteger (BigInteger&&) noexcept;
|
BigInteger (BigInteger&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
BigInteger& operator= (BigInteger&&) noexcept;
|
BigInteger& operator= (BigInteger&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~BigInteger();
|
~BigInteger();
|
||||||
|
|
|
||||||
|
|
@ -958,7 +958,6 @@ Expression& Expression::operator= (const Expression& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Expression::Expression (Expression&& other) noexcept
|
Expression::Expression (Expression&& other) noexcept
|
||||||
: term (static_cast<ReferenceCountedObjectPtr<Term>&&> (other.term))
|
: term (static_cast<ReferenceCountedObjectPtr<Term>&&> (other.term))
|
||||||
{
|
{
|
||||||
|
|
@ -969,7 +968,6 @@ Expression& Expression::operator= (Expression&& other) noexcept
|
||||||
term = static_cast<ReferenceCountedObjectPtr<Term>&&> (other.term);
|
term = static_cast<ReferenceCountedObjectPtr<Term>&&> (other.term);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
Expression::Expression (const String& stringToParse, String& parseError)
|
Expression::Expression (const String& stringToParse, String& parseError)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -63,10 +63,11 @@ public:
|
||||||
/** Copies another expression. */
|
/** Copies another expression. */
|
||||||
Expression& operator= (const Expression&);
|
Expression& operator= (const Expression&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
Expression (Expression&&) noexcept;
|
Expression (Expression&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
Expression& operator= (Expression&&) noexcept;
|
Expression& operator= (Expression&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates a simple expression with a specified constant value. */
|
/** Creates a simple expression with a specified constant value. */
|
||||||
explicit Expression (double constant);
|
explicit Expression (double constant);
|
||||||
|
|
|
||||||
|
|
@ -64,8 +64,8 @@ public:
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
inline ~Atomic() noexcept
|
inline ~Atomic() noexcept
|
||||||
{
|
{
|
||||||
// This class can only be used for types which are 32 or 64 bits in size.
|
static_assert (sizeof (Type) == 4 || sizeof (Type) == 8,
|
||||||
static_jassert (sizeof (Type) == 4 || sizeof (Type) == 8);
|
"Atomic can only be used for types which are 32 or 64 bits in size");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Atomically reads and returns the current value. */
|
/** Atomically reads and returns the current value. */
|
||||||
|
|
|
||||||
|
|
@ -137,19 +137,19 @@ public:
|
||||||
std::free (data);
|
std::free (data);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
HeapBlock (HeapBlock&& other) noexcept
|
HeapBlock (HeapBlock&& other) noexcept
|
||||||
: data (other.data)
|
: data (other.data)
|
||||||
{
|
{
|
||||||
other.data = nullptr;
|
other.data = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
HeapBlock& operator= (HeapBlock&& other) noexcept
|
HeapBlock& operator= (HeapBlock&& other) noexcept
|
||||||
{
|
{
|
||||||
std::swap (data, other.data);
|
std::swap (data, other.data);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns a raw pointer to the allocated data.
|
/** Returns a raw pointer to the allocated data.
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,6 @@ MemoryBlock& MemoryBlock::operator= (const MemoryBlock& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
MemoryBlock::MemoryBlock (MemoryBlock&& other) noexcept
|
MemoryBlock::MemoryBlock (MemoryBlock&& other) noexcept
|
||||||
: data (static_cast<HeapBlock<char>&&> (other.data)),
|
: data (static_cast<HeapBlock<char>&&> (other.data)),
|
||||||
size (other.size)
|
size (other.size)
|
||||||
|
|
@ -101,8 +100,6 @@ MemoryBlock& MemoryBlock::operator= (MemoryBlock&& other) noexcept
|
||||||
size = other.size;
|
size = other.size;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
bool MemoryBlock::operator== (const MemoryBlock& other) const noexcept
|
bool MemoryBlock::operator== (const MemoryBlock& other) const noexcept
|
||||||
|
|
|
||||||
|
|
@ -70,10 +70,11 @@ public:
|
||||||
*/
|
*/
|
||||||
MemoryBlock& operator= (const MemoryBlock&);
|
MemoryBlock& operator= (const MemoryBlock&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
MemoryBlock (MemoryBlock&&) noexcept;
|
MemoryBlock (MemoryBlock&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
MemoryBlock& operator= (MemoryBlock&&) noexcept;
|
MemoryBlock& operator= (MemoryBlock&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Compares two memory blocks.
|
/** Compares two memory blocks.
|
||||||
|
|
|
||||||
|
|
@ -248,13 +248,11 @@ public:
|
||||||
incIfNotNull (refCountedObject);
|
incIfNotNull (refCountedObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_NULLPTR
|
|
||||||
/** Creates a pointer to a null object. */
|
/** Creates a pointer to a null object. */
|
||||||
ReferenceCountedObjectPtr (decltype (nullptr)) noexcept
|
ReferenceCountedObjectPtr (decltype (nullptr)) noexcept
|
||||||
: referencedObject (nullptr)
|
: referencedObject (nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Copies another pointer.
|
/** Copies another pointer.
|
||||||
This will increment the object's reference-count.
|
This will increment the object's reference-count.
|
||||||
|
|
@ -312,7 +310,6 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Takes-over the object from another pointer. */
|
/** Takes-over the object from another pointer. */
|
||||||
ReferenceCountedObjectPtr (ReferenceCountedObjectPtr&& other) noexcept
|
ReferenceCountedObjectPtr (ReferenceCountedObjectPtr&& other) noexcept
|
||||||
: referencedObject (other.referencedObject)
|
: referencedObject (other.referencedObject)
|
||||||
|
|
@ -326,7 +323,6 @@ public:
|
||||||
std::swap (referencedObject, other.referencedObject);
|
std::swap (referencedObject, other.referencedObject);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor.
|
/** Destructor.
|
||||||
This will decrement the object's reference-count, which will cause the
|
This will decrement the object's reference-count, which will cause the
|
||||||
|
|
|
||||||
|
|
@ -78,12 +78,10 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_NULLPTR
|
|
||||||
/** Creates a ScopedPointer containing a null pointer. */
|
/** Creates a ScopedPointer containing a null pointer. */
|
||||||
inline ScopedPointer (decltype (nullptr)) noexcept : object (nullptr)
|
inline ScopedPointer (decltype (nullptr)) noexcept : object (nullptr)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates a ScopedPointer that owns the specified object. */
|
/** Creates a ScopedPointer that owns the specified object. */
|
||||||
inline ScopedPointer (ObjectType* const objectToTakePossessionOf) noexcept
|
inline ScopedPointer (ObjectType* const objectToTakePossessionOf) noexcept
|
||||||
|
|
@ -153,13 +151,14 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Take ownership of another ScopedPointer */
|
||||||
ScopedPointer (ScopedPointer&& other) noexcept
|
ScopedPointer (ScopedPointer&& other) noexcept
|
||||||
: object (other.object)
|
: object (other.object)
|
||||||
{
|
{
|
||||||
other.object = nullptr;
|
other.object = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Take ownership of another ScopedPointer */
|
||||||
ScopedPointer& operator= (ScopedPointer&& other) noexcept
|
ScopedPointer& operator= (ScopedPointer&& other) noexcept
|
||||||
{
|
{
|
||||||
ContainerDeletePolicy<ObjectType>::destroy (object);
|
ContainerDeletePolicy<ObjectType>::destroy (object);
|
||||||
|
|
@ -167,7 +166,6 @@ public:
|
||||||
other.object = nullptr;
|
other.object = nullptr;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns the object that this ScopedPointer refers to. */
|
/** Returns the object that this ScopedPointer refers to. */
|
||||||
|
|
@ -257,7 +255,8 @@ bool operator!= (const ScopedPointer<ObjectType>& pointer1, ObjectType* const po
|
||||||
#ifndef DOXYGEN
|
#ifndef DOXYGEN
|
||||||
// NB: This is just here to prevent any silly attempts to call deleteAndZero() on a ScopedPointer.
|
// NB: This is just here to prevent any silly attempts to call deleteAndZero() on a ScopedPointer.
|
||||||
template <typename Type>
|
template <typename Type>
|
||||||
void deleteAndZero (ScopedPointer<Type>&) { static_jassert (sizeof (Type) == 12345); }
|
void deleteAndZero (ScopedPointer<Type>&) { static_assert (sizeof (Type) == 12345,
|
||||||
|
"Attempt to call deleteAndZero() on a ScopedPointer"); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif // JUCE_SCOPEDPOINTER_H_INCLUDED
|
#endif // JUCE_SCOPEDPOINTER_H_INCLUDED
|
||||||
|
|
|
||||||
|
|
@ -93,16 +93,17 @@ public:
|
||||||
/** Creates a copy of another WeakReference. */
|
/** Creates a copy of another WeakReference. */
|
||||||
WeakReference (const WeakReference& other) noexcept : holder (other.holder) {}
|
WeakReference (const WeakReference& other) noexcept : holder (other.holder) {}
|
||||||
|
|
||||||
|
/** Move constructor */
|
||||||
|
WeakReference (WeakReference&& other) noexcept : holder (static_cast<SharedRef&&> (other.holder)) {}
|
||||||
|
|
||||||
/** Copies another pointer to this one. */
|
/** Copies another pointer to this one. */
|
||||||
WeakReference& operator= (const WeakReference& other) { holder = other.holder; return *this; }
|
WeakReference& operator= (const WeakReference& other) { holder = other.holder; return *this; }
|
||||||
|
|
||||||
/** Copies another pointer to this one. */
|
/** Copies another pointer to this one. */
|
||||||
WeakReference& operator= (ObjectType* const newObject) { holder = getRef (newObject); return *this; }
|
WeakReference& operator= (ObjectType* const newObject) { holder = getRef (newObject); return *this; }
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move assignment operator */
|
||||||
WeakReference (WeakReference&& other) noexcept : holder (static_cast<SharedRef&&> (other.holder)) {}
|
|
||||||
WeakReference& operator= (WeakReference&& other) noexcept { holder = static_cast<SharedRef&&> (other.holder); return *this; }
|
WeakReference& operator= (WeakReference&& other) noexcept { holder = static_cast<SharedRef&&> (other.holder); return *this; }
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Returns the object that this pointer refers to, or null if the object no longer exists. */
|
/** Returns the object that this pointer refers to, or null if the object no longer exists. */
|
||||||
ObjectType* get() const noexcept { return holder != nullptr ? holder->get() : nullptr; }
|
ObjectType* get() const noexcept { return holder != nullptr ? holder->get() : nullptr; }
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,6 @@ Result& Result::operator= (const Result& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Result::Result (Result&& other) noexcept
|
Result::Result (Result&& other) noexcept
|
||||||
: errorMessage (static_cast<String&&> (other.errorMessage))
|
: errorMessage (static_cast<String&&> (other.errorMessage))
|
||||||
{
|
{
|
||||||
|
|
@ -57,7 +56,6 @@ Result& Result::operator= (Result&& other) noexcept
|
||||||
errorMessage = static_cast<String&&> (other.errorMessage);
|
errorMessage = static_cast<String&&> (other.errorMessage);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool Result::operator== (const Result& other) const noexcept
|
bool Result::operator== (const Result& other) const noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -101,11 +101,8 @@ public:
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
Result (const Result&);
|
Result (const Result&);
|
||||||
Result& operator= (const Result&);
|
Result& operator= (const Result&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Result (Result&&) noexcept;
|
Result (Result&&) noexcept;
|
||||||
Result& operator= (Result&&) noexcept;
|
Result& operator= (Result&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
bool operator== (const Result& other) const noexcept;
|
bool operator== (const Result& other) const noexcept;
|
||||||
bool operator!= (const Result& other) const noexcept;
|
bool operator!= (const Result& other) const noexcept;
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,8 @@ namespace WindowsFileHelpers
|
||||||
|
|
||||||
int64 fileTimeToTime (const FILETIME* const ft)
|
int64 fileTimeToTime (const FILETIME* const ft)
|
||||||
{
|
{
|
||||||
static_jassert (sizeof (ULARGE_INTEGER) == sizeof (FILETIME)); // tell me if this fails!
|
static_assert (sizeof (ULARGE_INTEGER) == sizeof (FILETIME),
|
||||||
|
"ULARGE_INTEGER is too small to hold FILETIME: please report!");
|
||||||
|
|
||||||
return (int64) ((reinterpret_cast<const ULARGE_INTEGER*> (ft)->QuadPart - 116444736000000000LL) / 10000);
|
return (int64) ((reinterpret_cast<const ULARGE_INTEGER*> (ft)->QuadPart - 116444736000000000LL) / 10000);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,8 @@ void* getUser32Function (const char* functionName)
|
||||||
CriticalSection::CriticalSection() noexcept
|
CriticalSection::CriticalSection() noexcept
|
||||||
{
|
{
|
||||||
// (just to check the MS haven't changed this structure and broken things...)
|
// (just to check the MS haven't changed this structure and broken things...)
|
||||||
static_jassert (sizeof (CRITICAL_SECTION) <= sizeof (lock));
|
static_assert (sizeof (CRITICAL_SECTION) <= sizeof (lock),
|
||||||
|
"win32 lock array too small to hold CRITICAL_SECTION: please report this JUCE bug!");
|
||||||
|
|
||||||
InitializeCriticalSection ((CRITICAL_SECTION*) lock);
|
InitializeCriticalSection ((CRITICAL_SECTION*) lock);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -134,8 +134,7 @@ int64 InputStream::readInt64BigEndian()
|
||||||
|
|
||||||
float InputStream::readFloat()
|
float InputStream::readFloat()
|
||||||
{
|
{
|
||||||
// the union below relies on these types being the same size...
|
static_assert (sizeof (int32) == sizeof (float), "Union assumes float has the same size as an int32");
|
||||||
static_jassert (sizeof (int32) == sizeof (float));
|
|
||||||
union { int32 asInt; float asFloat; } n;
|
union { int32 asInt; float asFloat; } n;
|
||||||
n.asInt = (int32) readInt();
|
n.asInt = (int32) readInt();
|
||||||
return n.asFloat;
|
return n.asFloat;
|
||||||
|
|
|
||||||
|
|
@ -40,11 +40,8 @@
|
||||||
// GCC
|
// GCC
|
||||||
#if (__cplusplus >= 201103L || defined (__GXX_EXPERIMENTAL_CXX0X__)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 405
|
#if (__cplusplus >= 201103L || defined (__GXX_EXPERIMENTAL_CXX0X__)) && (__GNUC__ * 100 + __GNUC_MINOR__) >= 405
|
||||||
#define JUCE_COMPILER_SUPPORTS_NOEXCEPT 1
|
#define JUCE_COMPILER_SUPPORTS_NOEXCEPT 1
|
||||||
#define JUCE_COMPILER_SUPPORTS_NULLPTR 1
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS 1
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS 1
|
#define JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS 1
|
||||||
#define JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES 1
|
#define JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES 1
|
||||||
#define JUCE_COMPILER_SUPPORTS_STATIC_ASSERT 1
|
|
||||||
|
|
||||||
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && ! defined (JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL)
|
#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && ! defined (JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL)
|
||||||
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
||||||
|
|
@ -68,18 +65,11 @@
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
// Clang
|
// Clang
|
||||||
#if JUCE_CLANG && defined (__has_feature)
|
#if JUCE_CLANG && defined (__has_feature)
|
||||||
#if __has_feature (cxx_nullptr)
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_NULLPTR 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __has_feature (cxx_noexcept)
|
#if __has_feature (cxx_noexcept)
|
||||||
#define JUCE_COMPILER_SUPPORTS_NOEXCEPT 1
|
#define JUCE_COMPILER_SUPPORTS_NOEXCEPT 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __has_feature (cxx_rvalue_references)
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __has_feature (cxx_deleted_functions)
|
#if __has_feature (cxx_deleted_functions)
|
||||||
#define JUCE_DELETED_FUNCTION = delete
|
#define JUCE_DELETED_FUNCTION = delete
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -96,10 +86,6 @@
|
||||||
#define JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES 1
|
#define JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if __has_feature (cxx_static_assert)
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_STATIC_ASSERT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if __has_feature (cxx_override_control) && (! defined (JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL))
|
#if __has_feature (cxx_override_control) && (! defined (JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL))
|
||||||
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -119,11 +105,6 @@
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
// MSVC
|
// MSVC
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
#if _MSC_VER >= 1600
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_NULLPTR 1
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS 1
|
|
||||||
#define JUCE_COMPILER_SUPPORTS_STATIC_ASSERT 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if _MSC_VER >= 1700
|
#if _MSC_VER >= 1700
|
||||||
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
#define JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL 1
|
||||||
|
|
@ -170,13 +151,6 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ! JUCE_COMPILER_SUPPORTS_NULLPTR
|
|
||||||
#ifdef nullptr
|
|
||||||
#undef nullptr
|
|
||||||
#endif
|
|
||||||
#define nullptr (0)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ! JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL
|
#if ! JUCE_COMPILER_SUPPORTS_OVERRIDE_AND_FINAL
|
||||||
#undef override
|
#undef override
|
||||||
#define override
|
#define override
|
||||||
|
|
|
||||||
|
|
@ -172,30 +172,6 @@
|
||||||
#define JUCE_STRINGIFY(item) JUCE_STRINGIFY_MACRO_HELPER (item)
|
#define JUCE_STRINGIFY(item) JUCE_STRINGIFY_MACRO_HELPER (item)
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#if JUCE_COMPILER_SUPPORTS_STATIC_ASSERT
|
|
||||||
/** A compile-time assertion macro.
|
|
||||||
If the expression parameter is false, the macro will cause a compile error. (The actual error
|
|
||||||
message that the compiler generates may be completely bizarre and seem to have no relation to
|
|
||||||
the place where you put the static_assert though!)
|
|
||||||
*/
|
|
||||||
#define static_jassert(expression) static_assert(expression, #expression);
|
|
||||||
#else
|
|
||||||
#ifndef DOXYGEN
|
|
||||||
namespace juce
|
|
||||||
{
|
|
||||||
template <bool b> struct JuceStaticAssert;
|
|
||||||
template <> struct JuceStaticAssert<true> { static void dummy() {} };
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** A compile-time assertion macro.
|
|
||||||
If the expression parameter is false, the macro will cause a compile error. (The actual error
|
|
||||||
message that the compiler generates may be completely bizarre and seem to have no relation to
|
|
||||||
the place where you put the static_assert though!)
|
|
||||||
*/
|
|
||||||
#define static_jassert(expression) juce::JuceStaticAssert<expression>::dummy();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** This is a shorthand macro for declaring stubs for a class's copy constructor and operator=.
|
/** This is a shorthand macro for declaring stubs for a class's copy constructor and operator=.
|
||||||
|
|
||||||
For example, instead of
|
For example, instead of
|
||||||
|
|
|
||||||
|
|
@ -32,15 +32,15 @@ String SystemStats::getJUCEVersion()
|
||||||
{
|
{
|
||||||
// Some basic tests, to keep an eye on things and make sure these types work ok
|
// Some basic tests, to keep an eye on things and make sure these types work ok
|
||||||
// on all platforms. Let me know if any of these assertions fail on your system!
|
// on all platforms. Let me know if any of these assertions fail on your system!
|
||||||
static_jassert (sizeof (pointer_sized_int) == sizeof (void*));
|
static_assert (sizeof (pointer_sized_int) == sizeof (void*), "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (int8) == 1);
|
static_assert (sizeof (int8) == 1, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (uint8) == 1);
|
static_assert (sizeof (uint8) == 1, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (int16) == 2);
|
static_assert (sizeof (int16) == 2, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (uint16) == 2);
|
static_assert (sizeof (uint16) == 2, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (int32) == 4);
|
static_assert (sizeof (int32) == 4, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (uint32) == 4);
|
static_assert (sizeof (uint32) == 4, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (int64) == 8);
|
static_assert (sizeof (int64) == 8, "Basic sanity test failed: please report!");
|
||||||
static_jassert (sizeof (uint64) == 8);
|
static_assert (sizeof (uint64) == 8, "Basic sanity test failed: please report!");
|
||||||
|
|
||||||
return "JUCE v" JUCE_STRINGIFY(JUCE_MAJOR_VERSION)
|
return "JUCE v" JUCE_STRINGIFY(JUCE_MAJOR_VERSION)
|
||||||
"." JUCE_STRINGIFY(JUCE_MINOR_VERSION)
|
"." JUCE_STRINGIFY(JUCE_MINOR_VERSION)
|
||||||
|
|
|
||||||
|
|
@ -193,17 +193,21 @@
|
||||||
|
|
||||||
#ifdef __clang__
|
#ifdef __clang__
|
||||||
#define JUCE_CLANG 1
|
#define JUCE_CLANG 1
|
||||||
|
|
||||||
|
#if ((! __has_feature (cxx_nullptr)) || (! __has_feature (cxx_rvalue_references)) || (! __has_feature (cxx_static_assert)))
|
||||||
|
#error "Clang 3.2 and earlier are no longer supported!"
|
||||||
|
#endif
|
||||||
#elif defined (__GNUC__)
|
#elif defined (__GNUC__)
|
||||||
#define JUCE_GCC 1
|
#define JUCE_GCC 1
|
||||||
|
|
||||||
|
#if (__cplusplus < 201103L && (! defined (__GXX_EXPERIMENTAL_CXX0X__))) || ((__GNUC__ * 100 + __GNUC_MINOR__) < 406)
|
||||||
|
#error "GCC 4.5 and earlier are no longer supported!"
|
||||||
|
#endif
|
||||||
#elif defined (_MSC_VER)
|
#elif defined (_MSC_VER)
|
||||||
#define JUCE_MSVC 1
|
#define JUCE_MSVC 1
|
||||||
|
|
||||||
#if _MSC_VER < 1500
|
#if _MSC_VER < 1600
|
||||||
#define JUCE_VC8_OR_EARLIER 1
|
#error "Visual Studio 2008 and earlier are no longer supported!"
|
||||||
|
|
||||||
#if _MSC_VER < 1400
|
|
||||||
#error "Visual Studio 2003 and earlier are no longer supported!"
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#error unknown compiler
|
#error unknown compiler
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ Identifier::~Identifier() noexcept {}
|
||||||
|
|
||||||
Identifier::Identifier (const Identifier& other) noexcept : name (other.name) {}
|
Identifier::Identifier (const Identifier& other) noexcept : name (other.name) {}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Identifier::Identifier (Identifier&& other) noexcept : name (static_cast<String&&> (other.name)) {}
|
Identifier::Identifier (Identifier&& other) noexcept : name (static_cast<String&&> (other.name)) {}
|
||||||
|
|
||||||
Identifier& Identifier::operator= (Identifier&& other) noexcept
|
Identifier& Identifier::operator= (Identifier&& other) noexcept
|
||||||
|
|
@ -41,7 +40,6 @@ Identifier& Identifier::operator= (Identifier&& other) noexcept
|
||||||
name = static_cast<String&&> (other.name);
|
name = static_cast<String&&> (other.name);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
Identifier& Identifier::operator= (const Identifier& other) noexcept
|
Identifier& Identifier::operator= (const Identifier& other) noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -72,13 +72,11 @@ public:
|
||||||
/** Creates a copy of another identifier. */
|
/** Creates a copy of another identifier. */
|
||||||
Identifier& operator= (const Identifier& other) noexcept;
|
Identifier& operator= (const Identifier& other) noexcept;
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Creates a copy of another identifier. */
|
/** Creates a copy of another identifier. */
|
||||||
Identifier (Identifier&& other) noexcept;
|
Identifier (Identifier&& other) noexcept;
|
||||||
|
|
||||||
/** Creates a copy of another identifier. */
|
/** Creates a copy of another identifier. */
|
||||||
Identifier& operator= (Identifier&& other) noexcept;
|
Identifier& operator= (Identifier&& other) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor */
|
/** Destructor */
|
||||||
~Identifier() noexcept;
|
~Identifier() noexcept;
|
||||||
|
|
|
||||||
|
|
@ -226,16 +226,17 @@ private:
|
||||||
{
|
{
|
||||||
// Let me know if any of these assertions fail on your system!
|
// Let me know if any of these assertions fail on your system!
|
||||||
#if JUCE_NATIVE_WCHAR_IS_UTF8
|
#if JUCE_NATIVE_WCHAR_IS_UTF8
|
||||||
static_jassert (sizeof (wchar_t) == 1);
|
static_assert (sizeof (wchar_t) == 1, "JUCE_NATIVE_WCHAR_IS_* macro has incorrect value");
|
||||||
#elif JUCE_NATIVE_WCHAR_IS_UTF16
|
#elif JUCE_NATIVE_WCHAR_IS_UTF16
|
||||||
static_jassert (sizeof (wchar_t) == 2);
|
static_assert (sizeof (wchar_t) == 2, "JUCE_NATIVE_WCHAR_IS_* macro has incorrect value");
|
||||||
#elif JUCE_NATIVE_WCHAR_IS_UTF32
|
#elif JUCE_NATIVE_WCHAR_IS_UTF32
|
||||||
static_jassert (sizeof (wchar_t) == 4);
|
static_assert (sizeof (wchar_t) == 4, "JUCE_NATIVE_WCHAR_IS_* macro has incorrect value");
|
||||||
#else
|
#else
|
||||||
#error "native wchar_t size is unknown"
|
#error "native wchar_t size is unknown"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static_jassert (sizeof (EmptyString) == sizeof (StringHolder));
|
static_assert (sizeof (EmptyString) == sizeof (StringHolder),
|
||||||
|
"StringHolder is not large enough to hold an empty String");
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -276,7 +277,6 @@ String& String::operator= (const String& other) noexcept
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
String::String (String&& other) noexcept : text (other.text)
|
String::String (String&& other) noexcept : text (other.text)
|
||||||
{
|
{
|
||||||
other.text = &(emptyString.text);
|
other.text = &(emptyString.text);
|
||||||
|
|
@ -287,7 +287,6 @@ String& String::operator= (String&& other) noexcept
|
||||||
std::swap (text, other.text);
|
std::swap (text, other.text);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
inline String::PreallocationBytes::PreallocationBytes (const size_t num) noexcept : numBytes (num) {}
|
inline String::PreallocationBytes::PreallocationBytes (const size_t num) noexcept : numBytes (num) {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,9 +54,8 @@ public:
|
||||||
/** Creates a copy of another string. */
|
/** Creates a copy of another string. */
|
||||||
String (const String& other) noexcept;
|
String (const String& other) noexcept;
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
String (String&& other) noexcept;
|
String (String&& other) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates a string from a zero-terminated ascii text string.
|
/** Creates a string from a zero-terminated ascii text string.
|
||||||
|
|
||||||
|
|
@ -200,9 +199,8 @@ public:
|
||||||
/** Replaces this string's contents with another string. */
|
/** Replaces this string's contents with another string. */
|
||||||
String& operator= (const String& other) noexcept;
|
String& operator= (const String& other) noexcept;
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Moves the contents of another string to the receiver */
|
||||||
String& operator= (String&& other) noexcept;
|
String& operator= (String&& other) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Appends another string at the end of this one. */
|
/** Appends another string at the end of this one. */
|
||||||
String& operator+= (const String& stringToAppend);
|
String& operator+= (const String& stringToAppend);
|
||||||
|
|
|
||||||
|
|
@ -37,12 +37,10 @@ StringArray::StringArray (const StringArray& other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
StringArray::StringArray (StringArray&& other) noexcept
|
StringArray::StringArray (StringArray&& other) noexcept
|
||||||
: strings (static_cast<Array <String>&&> (other.strings))
|
: strings (static_cast<Array <String>&&> (other.strings))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
StringArray::StringArray (const String& firstValue)
|
StringArray::StringArray (const String& firstValue)
|
||||||
{
|
{
|
||||||
|
|
@ -80,13 +78,11 @@ StringArray& StringArray::operator= (const StringArray& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
StringArray& StringArray::operator= (StringArray&& other) noexcept
|
StringArray& StringArray::operator= (StringArray&& other) noexcept
|
||||||
{
|
{
|
||||||
strings = static_cast<Array<String>&&> (other.strings);
|
strings = static_cast<Array<String>&&> (other.strings);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS
|
#if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS
|
||||||
StringArray::StringArray (const std::initializer_list<const char*>& stringList)
|
StringArray::StringArray (const std::initializer_list<const char*>& stringList)
|
||||||
|
|
@ -147,12 +143,10 @@ void StringArray::add (const String& newString)
|
||||||
strings.add (newString);
|
strings.add (newString);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
void StringArray::add (String&& stringToAdd)
|
void StringArray::add (String&& stringToAdd)
|
||||||
{
|
{
|
||||||
strings.add (static_cast<String&&> (stringToAdd));
|
strings.add (static_cast<String&&> (stringToAdd));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void StringArray::insert (const int index, const String& newString)
|
void StringArray::insert (const int index, const String& newString)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,8 @@ public:
|
||||||
/** Creates a copy of another string array */
|
/** Creates a copy of another string array */
|
||||||
StringArray (const StringArray&);
|
StringArray (const StringArray&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
StringArray (StringArray&&) noexcept;
|
StringArray (StringArray&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates an array containing a single string. */
|
/** Creates an array containing a single string. */
|
||||||
explicit StringArray (const String& firstValue);
|
explicit StringArray (const String& firstValue);
|
||||||
|
|
@ -98,9 +97,8 @@ public:
|
||||||
/** Copies the contents of another string array into this one */
|
/** Copies the contents of another string array into this one */
|
||||||
StringArray& operator= (const StringArray&);
|
StringArray& operator= (const StringArray&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move assignment operator */
|
||||||
StringArray& operator= (StringArray&&) noexcept;
|
StringArray& operator= (StringArray&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Swaps the contents of this and another StringArray. */
|
/** Swaps the contents of this and another StringArray. */
|
||||||
void swapWith (StringArray&) noexcept;
|
void swapWith (StringArray&) noexcept;
|
||||||
|
|
@ -177,10 +175,8 @@ public:
|
||||||
/** Appends a string at the end of the array. */
|
/** Appends a string at the end of the array. */
|
||||||
void add (const String& stringToAdd);
|
void add (const String& stringToAdd);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
/** Appends a string at the end of the array. */
|
/** Appends a string at the end of the array. */
|
||||||
void add (String&& stringToAdd);
|
void add (String&& stringToAdd);
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Inserts a string into the array.
|
/** Inserts a string into the array.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -134,7 +134,6 @@ XmlElement& XmlElement::operator= (const XmlElement& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
XmlElement::XmlElement (XmlElement&& other) noexcept
|
XmlElement::XmlElement (XmlElement&& other) noexcept
|
||||||
: nextListItem (static_cast<LinkedListPointer<XmlElement>&&> (other.nextListItem)),
|
: nextListItem (static_cast<LinkedListPointer<XmlElement>&&> (other.nextListItem)),
|
||||||
firstChildElement (static_cast<LinkedListPointer<XmlElement>&&> (other.firstChildElement)),
|
firstChildElement (static_cast<LinkedListPointer<XmlElement>&&> (other.firstChildElement)),
|
||||||
|
|
@ -157,7 +156,6 @@ XmlElement& XmlElement::operator= (XmlElement&& other) noexcept
|
||||||
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void XmlElement::copyChildrenAndAttributesFrom (const XmlElement& other)
|
void XmlElement::copyChildrenAndAttributesFrom (const XmlElement& other)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -166,10 +166,11 @@ public:
|
||||||
/** Creates a (deep) copy of another element. */
|
/** Creates a (deep) copy of another element. */
|
||||||
XmlElement& operator= (const XmlElement&);
|
XmlElement& operator= (const XmlElement&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move assignment operator */
|
||||||
XmlElement (XmlElement&&) noexcept;
|
|
||||||
XmlElement& operator= (XmlElement&&) noexcept;
|
XmlElement& operator= (XmlElement&&) noexcept;
|
||||||
#endif
|
|
||||||
|
/** Move constructor */
|
||||||
|
XmlElement (XmlElement&&) noexcept;
|
||||||
|
|
||||||
/** Deleting an XmlElement will also delete all of its child elements. */
|
/** Deleting an XmlElement will also delete all of its child elements. */
|
||||||
~XmlElement() noexcept;
|
~XmlElement() noexcept;
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,6 @@ Value::Value (const Value& other) : value (other.value)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Value::Value (Value&& other) noexcept
|
Value::Value (Value&& other) noexcept
|
||||||
{
|
{
|
||||||
// moving a Value with listeners will lose those listeners, which
|
// moving a Value with listeners will lose those listeners, which
|
||||||
|
|
@ -132,7 +131,6 @@ Value& Value::operator= (Value&& other) noexcept
|
||||||
value = static_cast<ReferenceCountedObjectPtr<ValueSource>&&> (other.value);
|
value = static_cast<ReferenceCountedObjectPtr<ValueSource>&&> (other.value);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
Value::~Value()
|
Value::~Value()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -63,10 +63,8 @@ public:
|
||||||
/** Creates a Value that is set to the specified value. */
|
/** Creates a Value that is set to the specified value. */
|
||||||
explicit Value (const var& initialValue);
|
explicit Value (const var& initialValue);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
Value (Value&&) noexcept;
|
Value (Value&&) noexcept;
|
||||||
Value& operator= (Value&&) noexcept;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~Value();
|
~Value();
|
||||||
|
|
@ -101,6 +99,9 @@ public:
|
||||||
*/
|
*/
|
||||||
Value& operator= (const var& newValue);
|
Value& operator= (const var& newValue);
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
|
Value& operator= (Value&&) noexcept;
|
||||||
|
|
||||||
/** Makes this object refer to the same underlying ValueSource as another one.
|
/** Makes this object refer to the same underlying ValueSource as another one.
|
||||||
|
|
||||||
Once this object has been connected to another one, changing either one
|
Once this object has been connected to another one, changing either one
|
||||||
|
|
|
||||||
|
|
@ -702,12 +702,10 @@ ValueTree& ValueTree::operator= (const ValueTree& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
ValueTree::ValueTree (ValueTree&& other) noexcept
|
ValueTree::ValueTree (ValueTree&& other) noexcept
|
||||||
: object (static_cast<SharedObject::Ptr&&> (other.object))
|
: object (static_cast<SharedObject::Ptr&&> (other.object))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
ValueTree::~ValueTree()
|
ValueTree::~ValueTree()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -92,9 +92,8 @@ public:
|
||||||
/** Makes this object reference another node. */
|
/** Makes this object reference another node. */
|
||||||
ValueTree& operator= (const ValueTree&);
|
ValueTree& operator= (const ValueTree&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
ValueTree (ValueTree&&) noexcept;
|
ValueTree (ValueTree&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~ValueTree();
|
~ValueTree();
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,6 @@ FillType& FillType::operator= (const FillType& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
FillType::FillType (FillType&& other) noexcept
|
FillType::FillType (FillType&& other) noexcept
|
||||||
: colour (other.colour),
|
: colour (other.colour),
|
||||||
gradient (other.gradient.release()),
|
gradient (other.gradient.release()),
|
||||||
|
|
@ -82,7 +81,6 @@ FillType& FillType::operator= (FillType&& other) noexcept
|
||||||
transform = other.transform;
|
transform = other.transform;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
FillType::~FillType() noexcept
|
FillType::~FillType() noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -64,10 +64,11 @@ public:
|
||||||
/** Makes a copy of another FillType. */
|
/** Makes a copy of another FillType. */
|
||||||
FillType& operator= (const FillType&);
|
FillType& operator= (const FillType&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
FillType (FillType&&) noexcept;
|
FillType (FillType&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
FillType& operator= (FillType&&) noexcept;
|
FillType& operator= (FillType&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~FillType() noexcept;
|
~FillType() noexcept;
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,6 @@ namespace
|
||||||
AttributedString::Attribute::Attribute() noexcept : colour (0xff000000) {}
|
AttributedString::Attribute::Attribute() noexcept : colour (0xff000000) {}
|
||||||
AttributedString::Attribute::~Attribute() noexcept {}
|
AttributedString::Attribute::~Attribute() noexcept {}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
AttributedString::Attribute::Attribute (Attribute&& other) noexcept
|
AttributedString::Attribute::Attribute (Attribute&& other) noexcept
|
||||||
: range (other.range),
|
: range (other.range),
|
||||||
font (static_cast<Font&&> (other.font)),
|
font (static_cast<Font&&> (other.font)),
|
||||||
|
|
@ -151,7 +150,6 @@ AttributedString::Attribute& AttributedString::Attribute::operator= (Attribute&&
|
||||||
colour = other.colour;
|
colour = other.colour;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
AttributedString::Attribute::Attribute (const Attribute& other) noexcept
|
AttributedString::Attribute::Attribute (const Attribute& other) noexcept
|
||||||
: range (other.range),
|
: range (other.range),
|
||||||
|
|
@ -216,7 +214,6 @@ AttributedString& AttributedString::operator= (const AttributedString& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
AttributedString::AttributedString (AttributedString&& other) noexcept
|
AttributedString::AttributedString (AttributedString&& other) noexcept
|
||||||
: text (static_cast<String&&> (other.text)),
|
: text (static_cast<String&&> (other.text)),
|
||||||
lineSpacing (other.lineSpacing),
|
lineSpacing (other.lineSpacing),
|
||||||
|
|
@ -237,7 +234,6 @@ AttributedString& AttributedString::operator= (AttributedString&& other) noexcep
|
||||||
attributes = static_cast<Array<Attribute>&&> (other.attributes);
|
attributes = static_cast<Array<Attribute>&&> (other.attributes);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
AttributedString::~AttributedString() noexcept {}
|
AttributedString::~AttributedString() noexcept {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,8 @@ public:
|
||||||
|
|
||||||
AttributedString (const AttributedString&);
|
AttributedString (const AttributedString&);
|
||||||
AttributedString& operator= (const AttributedString&);
|
AttributedString& operator= (const AttributedString&);
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
AttributedString (AttributedString&&) noexcept;
|
AttributedString (AttributedString&&) noexcept;
|
||||||
AttributedString& operator= (AttributedString&&) noexcept;
|
AttributedString& operator= (AttributedString&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~AttributedString() noexcept;
|
~AttributedString() noexcept;
|
||||||
|
|
@ -154,10 +152,8 @@ public:
|
||||||
~Attribute() noexcept;
|
~Attribute() noexcept;
|
||||||
Attribute (const Attribute&) noexcept;
|
Attribute (const Attribute&) noexcept;
|
||||||
Attribute& operator= (const Attribute&) noexcept;
|
Attribute& operator= (const Attribute&) noexcept;
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Attribute (Attribute&&) noexcept;
|
Attribute (Attribute&&) noexcept;
|
||||||
Attribute& operator= (Attribute&&) noexcept;
|
Attribute& operator= (Attribute&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates an attribute that specifies the font and colour for a range of characters. */
|
/** Creates an attribute that specifies the font and colour for a range of characters. */
|
||||||
Attribute (Range<int> range, const Font& font, Colour colour) noexcept;
|
Attribute (Range<int> range, const Font& font, Colour colour) noexcept;
|
||||||
|
|
|
||||||
|
|
@ -277,7 +277,6 @@ Font& Font::operator= (const Font& other) noexcept
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Font::Font (Font&& other) noexcept
|
Font::Font (Font&& other) noexcept
|
||||||
: font (static_cast<ReferenceCountedObjectPtr<SharedFontInternal>&&> (other.font))
|
: font (static_cast<ReferenceCountedObjectPtr<SharedFontInternal>&&> (other.font))
|
||||||
{
|
{
|
||||||
|
|
@ -288,7 +287,6 @@ Font& Font::operator= (Font&& other) noexcept
|
||||||
font = static_cast<ReferenceCountedObjectPtr<SharedFontInternal>&&> (other.font);
|
font = static_cast<ReferenceCountedObjectPtr<SharedFontInternal>&&> (other.font);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
Font::~Font() noexcept
|
Font::~Font() noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -95,10 +95,11 @@ public:
|
||||||
*/
|
*/
|
||||||
Font();
|
Font();
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
Font (Font&& other) noexcept;
|
Font (Font&& other) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
Font& operator= (Font&& other) noexcept;
|
Font& operator= (Font&& other) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Copies this font from another one. */
|
/** Copies this font from another one. */
|
||||||
Font& operator= (const Font& other) noexcept;
|
Font& operator= (const Font& other) noexcept;
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ PositionedGlyph::PositionedGlyph (const PositionedGlyph& other)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
PositionedGlyph::PositionedGlyph (PositionedGlyph&& other) noexcept
|
PositionedGlyph::PositionedGlyph (PositionedGlyph&& other) noexcept
|
||||||
: font (static_cast<Font&&> (other.font)),
|
: font (static_cast<Font&&> (other.font)),
|
||||||
character (other.character), glyph (other.glyph),
|
character (other.character), glyph (other.glyph),
|
||||||
|
|
@ -59,7 +58,6 @@ PositionedGlyph& PositionedGlyph::operator= (PositionedGlyph&& other) noexcept
|
||||||
whitespace = other.whitespace;
|
whitespace = other.whitespace;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
PositionedGlyph::~PositionedGlyph() {}
|
PositionedGlyph::~PositionedGlyph() {}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,11 @@ public:
|
||||||
PositionedGlyph (const PositionedGlyph&);
|
PositionedGlyph (const PositionedGlyph&);
|
||||||
PositionedGlyph& operator= (const PositionedGlyph&);
|
PositionedGlyph& operator= (const PositionedGlyph&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
PositionedGlyph (PositionedGlyph&&) noexcept;
|
PositionedGlyph (PositionedGlyph&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
PositionedGlyph& operator= (PositionedGlyph&&) noexcept;
|
PositionedGlyph& operator= (PositionedGlyph&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
~PositionedGlyph();
|
~PositionedGlyph();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,6 @@ TextLayout::TextLayout (const TextLayout& other)
|
||||||
lines.addCopiesOf (other.lines);
|
lines.addCopiesOf (other.lines);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
TextLayout::TextLayout (TextLayout&& other) noexcept
|
TextLayout::TextLayout (TextLayout&& other) noexcept
|
||||||
: lines (static_cast<OwnedArray<Line>&&> (other.lines)),
|
: lines (static_cast<OwnedArray<Line>&&> (other.lines)),
|
||||||
width (other.width), height (other.height),
|
width (other.width), height (other.height),
|
||||||
|
|
@ -169,7 +168,6 @@ TextLayout& TextLayout::operator= (TextLayout&& other) noexcept
|
||||||
justification = other.justification;
|
justification = other.justification;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
TextLayout& TextLayout::operator= (const TextLayout& other)
|
TextLayout& TextLayout::operator= (const TextLayout& other)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -45,10 +45,8 @@ public:
|
||||||
TextLayout();
|
TextLayout();
|
||||||
TextLayout (const TextLayout&);
|
TextLayout (const TextLayout&);
|
||||||
TextLayout& operator= (const TextLayout&);
|
TextLayout& operator= (const TextLayout&);
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
TextLayout (TextLayout&&) noexcept;
|
TextLayout (TextLayout&&) noexcept;
|
||||||
TextLayout& operator= (TextLayout&&) noexcept;
|
TextLayout& operator= (TextLayout&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~TextLayout();
|
~TextLayout();
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,6 @@ Path& Path::operator= (const Path& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Path::Path (Path&& other) noexcept
|
Path::Path (Path&& other) noexcept
|
||||||
: data (static_cast<ArrayAllocationBase <float, DummyCriticalSection>&&> (other.data)),
|
: data (static_cast<ArrayAllocationBase <float, DummyCriticalSection>&&> (other.data)),
|
||||||
numElements (other.numElements),
|
numElements (other.numElements),
|
||||||
|
|
@ -174,7 +173,6 @@ Path& Path::operator= (Path&& other) noexcept
|
||||||
useNonZeroWinding = other.useNonZeroWinding;
|
useNonZeroWinding = other.useNonZeroWinding;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool Path::operator== (const Path& other) const noexcept
|
bool Path::operator== (const Path& other) const noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -75,10 +75,11 @@ public:
|
||||||
/** Copies this path from another one. */
|
/** Copies this path from another one. */
|
||||||
Path& operator= (const Path&);
|
Path& operator= (const Path&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
Path (Path&&) noexcept;
|
Path (Path&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
Path& operator= (Path&&) noexcept;
|
Path& operator= (Path&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
bool operator== (const Path&) const noexcept;
|
bool operator== (const Path&) const noexcept;
|
||||||
bool operator!= (const Path&) const noexcept;
|
bool operator!= (const Path&) const noexcept;
|
||||||
|
|
|
||||||
|
|
@ -64,18 +64,18 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
RectangleList (RectangleList&& other) noexcept
|
RectangleList (RectangleList&& other) noexcept
|
||||||
: rects (static_cast<Array<RectangleType>&&> (other.rects))
|
: rects (static_cast<Array<RectangleType>&&> (other.rects))
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
RectangleList& operator= (RectangleList&& other) noexcept
|
RectangleList& operator= (RectangleList&& other) noexcept
|
||||||
{
|
{
|
||||||
rects = static_cast<Array<RectangleType>&&> (other.rects);
|
rects = static_cast<Array<RectangleType>&&> (other.rects);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Returns true if the region is empty. */
|
/** Returns true if the region is empty. */
|
||||||
|
|
|
||||||
|
|
@ -242,7 +242,6 @@ Image& Image::operator= (const Image& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
Image::Image (Image&& other) noexcept
|
Image::Image (Image&& other) noexcept
|
||||||
: image (static_cast<ImagePixelData::Ptr&&> (other.image))
|
: image (static_cast<ImagePixelData::Ptr&&> (other.image))
|
||||||
{
|
{
|
||||||
|
|
@ -253,7 +252,6 @@ Image& Image::operator= (Image&& other) noexcept
|
||||||
image = static_cast<ImagePixelData::Ptr&&> (other.image);
|
image = static_cast<ImagePixelData::Ptr&&> (other.image);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
Image::~Image()
|
Image::~Image()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -116,10 +116,11 @@ public:
|
||||||
*/
|
*/
|
||||||
Image& operator= (const Image&);
|
Image& operator= (const Image&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
Image (Image&&) noexcept;
|
Image (Image&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
Image& operator= (Image&&) noexcept;
|
Image& operator= (Image&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~Image();
|
~Image();
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ namespace TTFNameExtractor
|
||||||
for (int i = 0; i < numChars; ++i)
|
for (int i = 0; i < numChars; ++i)
|
||||||
buffer[i] = ByteOrder::swapIfLittleEndian (buffer[i]);
|
buffer[i] = ByteOrder::swapIfLittleEndian (buffer[i]);
|
||||||
|
|
||||||
static_jassert (sizeof (CharPointer_UTF16::CharType) == sizeof (uint16));
|
static_assert (sizeof (CharPointer_UTF16::CharType) == sizeof (uint16), "Sanity check UTF-16 type");
|
||||||
result = CharPointer_UTF16 ((CharPointer_UTF16::CharType*) buffer.getData());
|
result = CharPointer_UTF16 ((CharPointer_UTF16::CharType*) buffer.getData());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -471,7 +471,7 @@ Component::Component (const String& name) noexcept
|
||||||
|
|
||||||
Component::~Component()
|
Component::~Component()
|
||||||
{
|
{
|
||||||
static_jassert (sizeof (flags) <= sizeof (componentFlags));
|
static_assert (sizeof (flags) <= sizeof (componentFlags), "componentFlags has too many bits!");
|
||||||
|
|
||||||
componentListeners.call (&ComponentListener::componentBeingDeleted, *this);
|
componentListeners.call (&ComponentListener::componentBeingDeleted, *this);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -254,7 +254,7 @@ extern bool juce_areThereAnyAlwaysOnTopWindows();
|
||||||
#include "misc/juce_DropShadower.cpp"
|
#include "misc/juce_DropShadower.cpp"
|
||||||
|
|
||||||
// these classes are C++11-only
|
// these classes are C++11-only
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS && JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
#if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
||||||
#include "layout/juce_FlexBox.cpp"
|
#include "layout/juce_FlexBox.cpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -283,7 +283,7 @@ class FlexBox;
|
||||||
#include "lookandfeel/juce_LookAndFeel_V3.h"
|
#include "lookandfeel/juce_LookAndFeel_V3.h"
|
||||||
|
|
||||||
// these classes are C++11-only
|
// these classes are C++11-only
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS && JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
#if JUCE_COMPILER_SUPPORTS_INITIALIZER_LISTS && JUCE_COMPILER_SUPPORTS_LAMBDAS
|
||||||
#include "layout/juce_FlexItem.h"
|
#include "layout/juce_FlexItem.h"
|
||||||
#include "layout/juce_FlexBox.h"
|
#include "layout/juce_FlexBox.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1251,7 +1251,6 @@ PopupMenu& PopupMenu::operator= (const PopupMenu& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
PopupMenu::PopupMenu (PopupMenu&& other) noexcept
|
PopupMenu::PopupMenu (PopupMenu&& other) noexcept
|
||||||
: lookAndFeel (other.lookAndFeel)
|
: lookAndFeel (other.lookAndFeel)
|
||||||
{
|
{
|
||||||
|
|
@ -1266,7 +1265,6 @@ PopupMenu& PopupMenu::operator= (PopupMenu&& other) noexcept
|
||||||
lookAndFeel = other.lookAndFeel;
|
lookAndFeel = other.lookAndFeel;
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
PopupMenu::~PopupMenu()
|
PopupMenu::~PopupMenu()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -96,10 +96,11 @@ public:
|
||||||
/** Copies this menu from another one. */
|
/** Copies this menu from another one. */
|
||||||
PopupMenu& operator= (const PopupMenu& other);
|
PopupMenu& operator= (const PopupMenu& other);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
PopupMenu (PopupMenu&& other) noexcept;
|
PopupMenu (PopupMenu&& other) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
PopupMenu& operator= (PopupMenu&& other) noexcept;
|
PopupMenu& operator= (PopupMenu&& other) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
/** Resets the menu, removing all its items. */
|
/** Resets the menu, removing all its items. */
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,6 @@ MouseCursor& MouseCursor::operator= (const MouseCursor& other)
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
MouseCursor::MouseCursor (MouseCursor&& other) noexcept
|
MouseCursor::MouseCursor (MouseCursor&& other) noexcept
|
||||||
: cursorHandle (other.cursorHandle)
|
: cursorHandle (other.cursorHandle)
|
||||||
{
|
{
|
||||||
|
|
@ -183,7 +182,6 @@ MouseCursor& MouseCursor::operator= (MouseCursor&& other) noexcept
|
||||||
std::swap (cursorHandle, other.cursorHandle);
|
std::swap (cursorHandle, other.cursorHandle);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
bool MouseCursor::operator== (const MouseCursor& other) const noexcept
|
bool MouseCursor::operator== (const MouseCursor& other) const noexcept
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -111,10 +111,11 @@ public:
|
||||||
/** Destructor. */
|
/** Destructor. */
|
||||||
~MouseCursor();
|
~MouseCursor();
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
/** Move constructor */
|
||||||
MouseCursor (MouseCursor&&) noexcept;
|
MouseCursor (MouseCursor&&) noexcept;
|
||||||
|
|
||||||
|
/** Move assignment operator */
|
||||||
MouseCursor& operator= (MouseCursor&&) noexcept;
|
MouseCursor& operator= (MouseCursor&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Checks whether two mouse cursors are the same.
|
/** Checks whether two mouse cursors are the same.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,6 @@ RelativeCoordinate& RelativeCoordinate::operator= (const RelativeCoordinate& oth
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
RelativeCoordinate::RelativeCoordinate (RelativeCoordinate&& other) noexcept
|
RelativeCoordinate::RelativeCoordinate (RelativeCoordinate&& other) noexcept
|
||||||
: term (static_cast<Expression&&> (other.term))
|
: term (static_cast<Expression&&> (other.term))
|
||||||
{
|
{
|
||||||
|
|
@ -78,7 +77,6 @@ RelativeCoordinate& RelativeCoordinate::operator= (RelativeCoordinate&& other) n
|
||||||
term = static_cast<Expression&&> (other.term);
|
term = static_cast<Expression&&> (other.term);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin)
|
RelativeCoordinate::RelativeCoordinate (const double absoluteDistanceFromOrigin)
|
||||||
: term (absoluteDistanceFromOrigin)
|
: term (absoluteDistanceFromOrigin)
|
||||||
|
|
|
||||||
|
|
@ -76,11 +76,8 @@ public:
|
||||||
RelativeCoordinate (const Expression& expression);
|
RelativeCoordinate (const Expression& expression);
|
||||||
RelativeCoordinate (const RelativeCoordinate&);
|
RelativeCoordinate (const RelativeCoordinate&);
|
||||||
RelativeCoordinate& operator= (const RelativeCoordinate&);
|
RelativeCoordinate& operator= (const RelativeCoordinate&);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
RelativeCoordinate (RelativeCoordinate&&) noexcept;
|
RelativeCoordinate (RelativeCoordinate&&) noexcept;
|
||||||
RelativeCoordinate& operator= (RelativeCoordinate&&) noexcept;
|
RelativeCoordinate& operator= (RelativeCoordinate&&) noexcept;
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates an absolute position from the parent origin on either the X or Y axis.
|
/** Creates an absolute position from the parent origin on either the X or Y axis.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1133,7 +1133,7 @@ struct StateHelpers
|
||||||
|
|
||||||
~ShaderQuadQueue() noexcept
|
~ShaderQuadQueue() noexcept
|
||||||
{
|
{
|
||||||
static_jassert (sizeof (VertexInfo) == 8);
|
static_assert (sizeof (VertexInfo) == 8, "Sanity check VertexInfo size");
|
||||||
context.extensions.glBindBuffer (GL_ARRAY_BUFFER, 0);
|
context.extensions.glBindBuffer (GL_ARRAY_BUFFER, 0);
|
||||||
context.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0);
|
context.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0);
|
||||||
context.extensions.glDeleteBuffers (2, buffers);
|
context.extensions.glDeleteBuffers (2, buffers);
|
||||||
|
|
|
||||||
|
|
@ -216,17 +216,6 @@ public:
|
||||||
assignment = copy;
|
assignment = copy;
|
||||||
expect (assignment.getType() == OSCTypes::blob);
|
expect (assignment.getType() == OSCTypes::blob);
|
||||||
expect (assignment.getBlob() == blob);
|
expect (assignment.getBlob() == blob);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
|
||||||
OSCArgument move = std::move (arg);
|
|
||||||
expect (move.getType() == OSCTypes::blob);
|
|
||||||
expect (move.getBlob() == blob);
|
|
||||||
|
|
||||||
OSCArgument moveAssignment ("this will be overwritten!");
|
|
||||||
moveAssignment = std::move (copy);
|
|
||||||
expect (moveAssignment.getType() == OSCTypes::blob);
|
|
||||||
expect (moveAssignment.getBlob() == blob);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -143,7 +143,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
beginTest ("Initialisation with argument list (C++11 only)");
|
beginTest ("Initialisation with argument list (C++11 only)");
|
||||||
{
|
{
|
||||||
int testInt = 42;
|
int testInt = 42;
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ public:
|
||||||
OSCMessage (const OSCAddressPattern& ap) noexcept;
|
OSCMessage (const OSCAddressPattern& ap) noexcept;
|
||||||
|
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
/** Constructs an OSCMessage object with the given address pattern and list
|
/** Constructs an OSCMessage object with the given address pattern and list
|
||||||
of arguments.
|
of arguments.
|
||||||
|
|
||||||
|
|
@ -142,7 +142,7 @@ public:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
template <typename Arg1, typename... Args>
|
template <typename Arg1, typename... Args>
|
||||||
void addArguments (Arg1&& arg1, Args&&... args)
|
void addArguments (Arg1&& arg1, Args&&... args)
|
||||||
{
|
{
|
||||||
|
|
@ -160,7 +160,7 @@ private:
|
||||||
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
template <typename Arg1, typename... Args>
|
template <typename Arg1, typename... Args>
|
||||||
OSCMessage::OSCMessage (const OSCAddressPattern& ap, Arg1&& arg1, Args&&... args)
|
OSCMessage::OSCMessage (const OSCAddressPattern& ap, Arg1&& arg1, Args&&... args)
|
||||||
: addressPattern (ap)
|
: addressPattern (ap)
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ public:
|
||||||
bool sendToIPAddress (const String& targetIPAddress, int targetPortNumber,
|
bool sendToIPAddress (const String& targetIPAddress, int targetPortNumber,
|
||||||
const OSCBundle& bundle);
|
const OSCBundle& bundle);
|
||||||
|
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
/** Creates a new OSC message with the specified address pattern and list
|
/** Creates a new OSC message with the specified address pattern and list
|
||||||
of arguments, and sends it to the target.
|
of arguments, and sends it to the target.
|
||||||
|
|
||||||
|
|
@ -138,7 +138,7 @@ private:
|
||||||
|
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#if JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
bool OSCSender::send (const OSCAddressPattern& address, Args&&... args)
|
bool OSCSender::send (const OSCAddressPattern& address, Args&&... args)
|
||||||
{
|
{
|
||||||
|
|
@ -151,6 +151,6 @@ private:
|
||||||
{
|
{
|
||||||
return sendToIPAddress (targetIPAddress, targetPortNumber, OSCMessage (address, std::forward<Args> (args)...));
|
return sendToIPAddress (targetIPAddress, targetPortNumber, OSCMessage (address, std::forward<Args> (args)...));
|
||||||
}
|
}
|
||||||
#endif // JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES && JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS
|
#endif // JUCE_COMPILER_SUPPORTS_VARIADIC_TEMPLATES
|
||||||
|
|
||||||
#endif // JUCE_OSCSENDER_H_INCLUDED
|
#endif // JUCE_OSCSENDER_H_INCLUDED
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue