Though I agree it's not worth adding these overloads solely for convenience (after all, there's a reason we're supposed to write out std:: and sf:: every single time), I think there might be a legitimate concern about consistency. Looking just at sf::RectangleShape, we have:
- RectangleShape (const Vector2f &size=Vector2f(0, 0))
- void setSize (const Vector2f &size)
- void setTextureRect (const IntRect &rect)
- void setFillColor (const Color &color)
- void setOutlineColor (const Color &color)
- void setPosition (float x, float y)
- void setPosition (const Vector2f &position)
- void setScale (float factorX, float factorY)
- void setScale (const Vector2f &factors)
- void setOrigin (float x, float y)
- void setOrigin (const Vector2f &origin)
- void move (float offsetX, float offsetY)
- void move (const Vector2f &offset)
- void scale (float factorX, float factorY)
- void scale (const Vector2f &factor)
It does seem at least a little inconsistent that the constructor and the setSize methods don't have a two-floats overload when all the other methods taking a Vector2f do.
Maybe it's only worth changing this stuff for SFML 3 when sweeping changes to the APIs are possible, but we should probably aim to have a consistent rule about when "piecewise overloads" are available and when you have to go through a vocabulary type (even if C++11 makes it as simple as an extra pair of curly braces).
My first idea for such a rule: If the type has only one constructor taking scalars (like sf::Vector2f or sf::Color) and the method takes nothing but that type (so no risk of confusion) then provide a piecewise overload. Alternatively, I'd probably accept the other extreme of removing all such overloads and instead requiring the extra {} every single time, assuming SFML 3 will in fact be C++11-only.