Przeciążanie operatora z użyciem template<typedef T>

0

Chcę przeciążyć operatory, które będą działać dla kilku podobnych typedef'ów sf::Vector2u, sf::Vector2f, sf::Vector2i itd.

Wszystko widać na screenie:

Bez tytułu.png

Jak powinienem to zrobić żeby banglało ?

1

Przecież sf::Vector2 ma przeładowany operator+ https://www.sfml-dev.org/documentation/2.5.1/classsf_1_1Vector2.php#a72421239823c38a6b780c86a710ead07

Nie jestem na 100% pewien, ale z komunikatu błędu i nazewnictwa wnioskuję, że problemem jest próba utworzenia sf::Vector2f{ dx,dy }, gdzie potencjalnie tracisz precyzję przy zamianie unsigned intfloat. Sprawdź inicjalizację za pomocą () zamiast {}, albo spróbuj rzutować: sf::Vector2f{ float(dx), float(dy) }

0

Jeszcze mam takie pytanie, jakbym chciał, żeby ten operator był dostępny w całym projekcie to wrzucić go jako globalny ?

0

Prawdopodobnie spowoduje problemy z innymi fragmentami kodu. Dałem linka do dokumentacji SFML - wyraźnie widać, że Vector2f ma przeładowany operator+, po co chcesz swój?

1 użytkowników online, w tym zalogowanych: 0, gości: 1