JUCE 5.4.1 core Array compilation errors on Linux



I’m trying to upgrade to JUCE 5.4.1 on embedded Linux and we’re limited in the GCC and libstdc++ versions we use. With the latest JUCE release, it seems that std::is_trivially_copyable is being used, which is not available in some versions of libstdc++. Are we now going to be stuck on JUCE 5.3.2 until we can use a newer libstdc++ version?

../../JuceLibraryCode/modules/juce_core/containers/juce_ArrayBase.h:375:59: error: ‘is_trivially_copyable’ is not a member of ‘std’
using TriviallyCopyableVoid = typename std::enable_if<std::is_trivially_copyable<T>::value, void>::type;




Is std::is_scalar available? If not, which of the type traits do you have?


Hopefully this will do the trick.


Wonderful, that seems to have fixed it, thanks so much!!!


I’m also trying to update to JUCE 5.4.1 with GCC 4.9 on linux and I got this error :

/Juce/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp:274:82: error: call of overloaded ‘make_unique(const juce::String&, const juce::String&, const juce::String&, juce::NormalisableRange<float>&, float&, std::remove_reference<std::function<juce::String(float)>&>::type, std::remove_reference<std::function<float(const juce::String&)>&>::type, bool&, bool&, bool&, juce::AudioProcessorParameter::Category&, bool&)’ is ambiguous