Not a big deal, but

Since you guys are doing some refucktoring with breaking changes anyhow, can I just run this up the flagpole?

It seems odd that drawing rectangles is done with fillRect() and drawRect(), while drawing squircles is done with fillRoundedRectangle() and drawRoundedRectangle(). One or the other would be dope.

Further down the rectangle hole, Rectangle is a namespace collision in Windows 10. (As is Point.) So, as we all well know, one must use juce::Rectangle and juce::Point. While I’m not as clever as you guys when it comes to the computer stuff, the number of times I’ve written code on OSX, then gone to do a Windows build and had compiler failsauce… well…

(The latter is not that big a deal; I’m used to just using the namespace now. But I just want you guys to know I think of you every time I type juce::Rectangle.)


If you have your Windows and JUCE headers right there’s no collision.

If you must include a Windows header which is causing a collision… see:


1 Like

That’s fine, but the beauty of JUCE is that you don’t generally need to know that tweaky shit for cross-platform work. It Just Works. So a solution on the JUCE side of things would be preferable.

It’s not an unreasonable thing for the compiler to warn you about a name collision like that.

If you decide to include any two libraries, there could be common symbols, that’s just life, and that’s why we have namespaces. It’s impractical (and not the C++ ethic) to attempt to restrict your names in such a way that avoids collisions with any other thing on the planet.

Also, I think it’s as simple as adding using Rectangle = juce::Rectangle in your own namespace, which would solve the issue.


Totally fine with that. As I’ve mentioned many times, I’m self-taught in this shit, and some things that you guys are used to make me go “why?” That’s one of them. I imagine that this is why, e.g., openFrameworks precedes everything with “of”.

(Side note: is there really a C++ ethic?)