Is it just me or anyone else having a problem compiling with VST 3.6.7
The line that chokes is in file:
VST3_SDK/base/source/updatehandler.cpp
Line: 523
table->defered.erase (it);
with the error:
No matching member function for call to ‘erase’
The problem seems that it is a const_iterator (Line 123):
typedef DeferedChangeList::const_iterator DeferedChangeListIterConst;
changing the typedef to a non const:
typedef DeferedChangeList::iterator DeferedChangeListIterConst;
and the project compiles okay…
So I guess the correct solution would be to add after line 123:
typedef DeferedChangeList::iterator DeferedChangeListIter;
and then in line 512 change the declaration to:
Update::DeferedChangeListIter it =
Anyone else?
Rail
which compiler do you use ?
Xcode 8.2.1
LLVM 8.0
C++ Language Dialect: C++11 [-std=c++11]
I noticed that someone else also reported this same bug on the JUCE forum.
Rail
I got the same issue, it happens only when using -stdlib=libstdc++.
Since on macosx >= 10.9 (after Mavericks) libc++ is the default, I stumbled on this only while building something with deployment target 10.7, so forcing libstdc++ (libc++ is not supported on 10.7).
Steinberg release notes say this is the last version of the SDK supporting C++98, I think it would be nice to have an official fix for this issue: it fails building with stdlibc++ for just that line that uses a const_iterator, using a not-const iterator fixes the error.
I ended patching manually UpdateHandler::triggerDeferedUpdate, adding something like
//including a cxxx header to implicitly define _LIBCPP_VERSION when using libc++
#include <cstddef>
#ifdef _LIBCPP_VERSION
//building with libc++
Update::DeferedChangeListIterConst it = std::find (table->defered.begin (), table->defered.end (), tmp);
#else
//building with stdlibc++
Update::DeferedChangeList::iterator it = std::find (table->defered.begin (), table->defered.end (), tmp);
#endif
This way patched version is choosed only when using stdlibc++.
BTW is it safe to simply use a non-const iterator or does someone have smarter/safer suggestions? (e.g. using Jon Kalb trick c++ - How to remove constness of const_iterator? - Stack Overflow)
Dario