Trying to Compile PlaybackDemo_App cannot convert from const ElementType to 'trackton_engine::Selectable **'

Error appears in multiple places, but first in tracktion_Selectable.h.

Statements are in declarations:

inline Selectable** begin() const                           { return items.begin(); }
inline Selectable** end() const                             { return items.end(); }

Error: ‘return’: cannot convert from const ElementType to ‘trackton_engine::Selectable **’

A version of this error also occurs in traction_MidiMessageArray.h:

‘return’: cannot convert from ‘const ElementType’ to ‘tracktion_engine::MidiMessageArray::MidiMessageWithSource &’ PlaybackDemo_App c:\projects_audio\juce_user_modules\tracktion_engine\midi\tracktion_midimessagearray.h 43

Appears to be somehow related to: juce::Array<>

Also attempted to use dev branch of GIT repository …

git clone --recurse-submodules --branch develop https://github.com/Tracktion/tracktion_engine.git

Using JUCE v 5.4.7

What platform is this on?

Windows 10, VS2017

I’m fairly sure this works.
Take a look at this CI log: https://dev.azure.com/TracktionDev/tracktion_engine/_build/results?buildId=2712&view=logs&j=d50aad3f-1352-57d6-22f4-f28b32b2e387&t=7eefdd2b-db0d-5204-02cd-39aea0889327&l=263

It’s building the PlaybackDemo app fine.
Are you sure you’ve pulled the juce submodule?

Doesn’t
“git clone --recurse-submodules --branch develop https://github.com/Tracktion/tracktion_engine.git
get all of the submodules?

Although, I am probably using the 5.4.7 release version of JUCE in it’s own directory, not a version as a sub-folder of traction_engine. Do I need to use a different version?

It appears that pointing the JUCE modules to the sub-directory in tracktion_engine does work, but pointing to JUCE 5.4.7 modules does not work. It would be nice to know why.

Just a FYI … It appears that tracktion_engine is using a development branch of JUCE 5.4.6. There are significant differences from 5.4.7 that are not easy (for me) to resolve.

Are you sure? Looking at this: https://github.com/Tracktion/tracktion_engine/tree/develop/modules
you can see we’re pointing at this commit: https://github.com/juce-framework/JUCE/tree/5bb2e8ca6fe3ca25b8592d590cadf562cf29cd9d

Which is only 3 commits from the tip of juce/develop: https://github.com/juce-framework/JUCE/commits/develop


So I think the problem is that you’re on a JUCE branch that’s actually old and from February?
Is there any reason you can’t update JUCE to the latest develop tip in your own project?

Dave,

You are correct, using the latest development branch of JUCE did work. Sorry for all of the trouble.
I was reading some comments in the code as to the changes, and the version in the comments showed 5.4.6, then some change notes without mentioning 5.4.7. I did not look close enough.