From e757618b322d2a357ea93b95aaf5cffe62e30b5c Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Wed, 19 Aug 2015 18:17:42 -0700 Subject: [PATCH] Use an explicit operator bool for Vector2D --- src/vector2d.cpp | 4 ++-- src/vector2d.h | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) 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); }