Unimplemented method: String::operator+= (long)

Visual Studio had a very subtle underline underneath this operator. Apparently it’s nowhere to be found.

    /** Appends a decimal number at the end of this string. */
    String& operator+= (long numberToAppend);

Yeah, on MSVC there are some horrible problems involving ambiguities between size_t and longs, so the exact set of overloads we can use that works on all compilers is quite delicate!

Ah right… Would it be beneficial to delete the operator (I think that’s possible?), now that C++11 is the baseline? This way you can have users explicitly declare their intent and avoid ambiguity.

Yeah, can’t do that until we finally drop VC2013, unfortunately.

Is there still enough demand for VC2013 to be compatible? 2017 and 2019 are both free, whereas 2013 and 2015 required an expensive license (except “express” versions) and I can’t imagine someone voluntarily sticking with such old, outdated versions.

@reFX That’s my thought too. This discussion is probably worthwhile bringing into its own post but I’m not sure what the hold up would be to remove VS2013, especially since it looks to be a support pain point.

Might be good for Roli to poll on JUCE developer share of Visual Studio versions? Correct me if I’m wrong, there are restrictions with how far plugin developers can go due to AAX. Also, RTAS might be a consideration for compiler support, assuming some developers are still targeting the deprecated plugin format.

1 Like

So in other words: no resistance at all to drop VS2013. People even seem to skip 2015, so maybe move straight to 2017?

I think one of the big features of VS2017 (and VS2019 IIRC) is that it’s ABI compatible with 2015 so you can use the same 3rd party libraries you used with 2015. That makes upgrading a lot smoother.