In this case I would anyway program an own vector class (not struct). Vector algebra is such a wide field, there are nearly no limits - in contrast to SFML, where vectors are primarily used for graphic coordinates on the screen. And where a struct like current sf::Vector is (to my mind) already slightly overweight (in consideration of being a struct and no class).

A specific class isn't difficult to implement, and could be as convenient as you like. One could implement getter and setter methods to make access safer, specific global functions to support additional possibilities, functors to allow the use in associative containers. Some algebraic operators might be implemented inside the class. Compatibility to sf::Vector could be performed by specific methods or overloaded cast operators.

Imagine some examples of mathematical functions:

- Norm (vector length)

- UnitVector (vector / its length)

- Angle (of one vector relative to coordinate system, or between two vectors)

- DotProduct

- CrossProduct

- ... (as I said, loads of possibilities exist)

The implemention of n-dimensional vectors is just another example...

I don't see any reason to add those functionalities to sf::Vector, since SFML is not really thought for maths like this. Otherwise you could add geometry classes like matrices (would be excellent in combination with vectors -> affinity, transformations), or figures (lines, triangles, circles, any polygons, planes, intersection checkers, ...). Why not create polar coordinate classes? Might be helpful in some cases. Yes, why not expand SFML to a mathematical library? :roll:

In my opinion, current sf::Vector serves the purpose, and for advanced requirements an own implemention is no big thing.