C++11 requirement?


#1

Hi,
Does Juce require C++11 at this point? The develop branch has a new class called FlexItem with lots of class member initialization. If it does require C++11, I’d suggest some sort of error or warning.


#2

Some of our newer classes do require C++11 - on older compilers the library should still compile, but without those newer features. If you’ve got a system where that’s not working as it should do, let us know what your settings are!


#3

Well, I just checked with MS that VS2012 do not support class member initialization such as:

class
{
FlexBox* associatedFlexBox = nullptr;
};

I’m all for promoting newer technologies, but atm it would break our build system.


#4

Well no, we don’t expect it to work in VS2012. Like I said, the class should just not be available on pre-C++11 compilers, it’s wrapped in an #if statement so it’s just not defined on older systems.


#5

I think the problem here is that you use : #if JUCE_COMPILER_SUPPORTS_MOVE_SEMANTICS for the Flex classes. VS2012 is new enough to support move semantics (as is even VS2010) but old enough to not support for example class member initialization on declare.


#6

Ah, ok - thanks, we can sort that out!


#7

OK this is fixed on develop now. Thanks for the heads up.


#8

Thank you. This will give us some more time to update our tools.