1>e:\projects\testplug\modules\juce_audio_processors\format_types\juce_vst3pluginformat.cpp(916): error C2593: 'operator =' is ambiguous (..\..\JuceLibraryCode\juce_audio_processors.cpp)
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(112): could be 'juce::var &juce::var::operator =(juce::String &&)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(111): or 'juce::var &juce::var::operator =(juce::var &&) throw()'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(104): or 'juce::var &juce::var::operator =(juce::var::NativeFunction)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(103): or 'juce::var &juce::var::operator =(juce::ReferenceCountedObject *)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(102): or 'juce::var &juce::var::operator =(const juce::Array<juce::var,juce::DummyCriticalSection,0> &)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(101): or 'juce::var &juce::var::operator =(const juce::String &)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(100): or 'juce::var &juce::var::operator =(const wchar_t *)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(99): or 'juce::var &juce::var::operator =(const char *)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(98): or 'juce::var &juce::var::operator =(double)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(97): or 'juce::var &juce::var::operator =(bool)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(96): or 'juce::var &juce::var::operator =(juce::int64)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(95): or 'juce::var &juce::var::operator =(int)'
1> e:\projects\testplug\modules\juce_core\containers\juce_variant.h(94): or 'juce::var &juce::var::operator =(const juce::var &)'
1> while trying to match the argument list '(juce::var, const juce::MemoryBlock)'
1> e:\projects\testplug\modules\juce_audio_processors\format_types\juce_vst3pluginformat.cpp(834) : see reference to function template instantiation 'void juce::VST3Classes::VST3HostContext::AttributeList::addMessageToQueue<juce::MemoryBlock>(Steinberg::Vst::IAttributeList::AttrID,const Type &)' being compiled
1> with
1> [
1> Type=juce::MemoryBlock
1> ]
1> juce_core.cpp
there is a missing assignment operator in var class:
var& var::operator= (const MemoryBlock& binaryData) { type->cleanUp (value); type = &VariantType_Binary::instance; value.binaryValue = new MemoryBlock (binaryData); return *this; }
this shows clearly how differently each compiler understands the standards…
Can’t seem to reproduce this with vs2013 community.
i’m on vs2013 community too.
OK I’ve add this to JUCE. See latest develop tip.