diff --git a/src/vector2d.cpp b/src/vector2d.cpp index 7c06f9d99..8bb81de3c 100644 --- a/src/vector2d.cpp +++ b/src/vector2d.cpp @@ -75,8 +75,8 @@ Vector2D Vector2D::Round(float step) const { return Vector2D(floorf(x / step + .5f) * step, floorf(y / step + .5f) * step); } -Vector2D::operator unspecified_bool_type() const { - return *this == Vector2D() ? nullptr : &Vector2D::x; +Vector2D::operator bool() const { + return *this != Vector2D(); } std::string Vector2D::PStr(char sep) const { diff --git a/src/vector2d.h b/src/vector2d.h index 41811c709..3f353434e 100644 --- a/src/vector2d.h +++ b/src/vector2d.h @@ -28,7 +28,6 @@ class Vector2D { float x, y; - typedef float Vector2D::*unspecified_bool_type; public: float X() const { return x; } float Y() const { return y; } @@ -42,7 +41,7 @@ public: bool operator ==(const Vector2D r) const { return x == r.x && y == r.y; } bool operator !=(const Vector2D r) const { return x != r.x || y != r.y; } - operator unspecified_bool_type() const; + explicit operator bool() const; Vector2D operator -() const { return Vector2D(-x, -y); } Vector2D operator +(const Vector2D r) const { return Vector2D(x + r.x, y + r.y); }