Error compiling vst3pluginformat in VS2013

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.