JUCE 5.4.1 core Array compilation errors on Linux


#1

Hi,

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;

Thanks,

Geert


#2

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


#3

Hopefully this will do the trick.


#4

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


#5

Hello,
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
                                                            isBooleanParameter));
                                                                              ^