[nostalgia/common] Add constexpr and noexcept where appropriate

This commit is contained in:
2021-04-23 23:24:42 -05:00
parent 4518288745
commit 2dc9ce4015
4 changed files with 108 additions and 100 deletions
+40 -40
View File
@@ -20,172 +20,172 @@ class Size {
int width = 0;
int height = 0;
constexpr Size() = default;
constexpr Size() noexcept = default;
constexpr Size(int width, int height);
constexpr Size(int width, int height) noexcept;
constexpr Size operator+(common::Size p) const;
constexpr Size operator+(common::Size p) const noexcept;
constexpr Size operator-(common::Size p) const;
constexpr Size operator-(common::Size p) const noexcept;
constexpr Size operator*(common::Size p) const;
constexpr Size operator*(common::Size p) const noexcept;
constexpr Size operator/(common::Size p) const;
constexpr Size operator/(common::Size p) const noexcept;
constexpr Size operator+=(common::Size p);
constexpr Size operator+=(common::Size p) noexcept;
constexpr Size operator-=(common::Size p);
constexpr Size operator-=(common::Size p) noexcept;
constexpr Size operator*=(common::Size p);
constexpr Size operator*=(common::Size p) noexcept;
constexpr Size operator/=(common::Size p);
constexpr Size operator/=(common::Size p) noexcept;
constexpr Size operator+(int i) const;
constexpr Size operator+(int i) const noexcept;
constexpr Size operator-(int i) const;
constexpr Size operator-(int i) const noexcept;
constexpr Size operator*(int i) const;
constexpr Size operator*(int i) const noexcept;
constexpr Size operator/(int i) const;
constexpr Size operator/(int i) const noexcept;
constexpr Size operator+=(int i);
constexpr Size operator+=(int i) noexcept;
constexpr Size operator-=(int i);
constexpr Size operator-=(int i) noexcept;
constexpr Size operator*=(int i);
constexpr Size operator*=(int i) noexcept;
constexpr Size operator/=(int i);
constexpr Size operator/=(int i) noexcept;
constexpr bool operator==(const Size&) const;
constexpr bool operator==(const Size&) const noexcept;
constexpr bool operator!=(const Size&) const;
constexpr bool operator!=(const Size&) const noexcept;
};
constexpr Size::Size(int width, int height) {
constexpr Size::Size(int width, int height) noexcept {
this->width = width;
this->height = height;
}
constexpr Size Size::operator+(common::Size p) const {
constexpr Size Size::operator+(common::Size p) const noexcept {
p.width += width;
p.height += height;
return p;
}
constexpr Size Size::operator-(common::Size p) const {
constexpr Size Size::operator-(common::Size p) const noexcept {
auto out = *this;
out.width -= p.width;
out.height -= p.height;
return out;
}
constexpr Size Size::operator*(common::Size p) const {
constexpr Size Size::operator*(common::Size p) const noexcept {
p.width *= width;
p.height *= height;
return p;
}
constexpr Size Size::operator/(common::Size p) const {
constexpr Size Size::operator/(common::Size p) const noexcept {
auto out = *this;
out.width /= p.width;
out.height /= p.height;
return out;
}
constexpr Size Size::operator+=(common::Size p) {
constexpr Size Size::operator+=(common::Size p) noexcept {
width += p.width;
height += p.height;
return *this;
}
constexpr Size Size::operator-=(common::Size p) {
constexpr Size Size::operator-=(common::Size p) noexcept {
width -= p.width;
height -= p.height;
return *this;
}
constexpr Size Size::operator*=(common::Size p) {
constexpr Size Size::operator*=(common::Size p) noexcept {
width *= p.width;
height *= p.height;
return *this;
}
constexpr Size Size::operator/=(common::Size p) {
constexpr Size Size::operator/=(common::Size p) noexcept {
width /= p.width;
height /= p.height;
return *this;
}
constexpr Size Size::operator+(int i) const {
constexpr Size Size::operator+(int i) const noexcept {
auto out = *this;
out.width += i;
out.height += i;
return out;
}
constexpr Size Size::operator-(int i) const {
constexpr Size Size::operator-(int i) const noexcept {
auto out = *this;
out.width -= i;
out.height -= i;
return out;
}
constexpr Size Size::operator*(int i) const {
constexpr Size Size::operator*(int i) const noexcept {
auto out = *this;
out.width *= i;
out.height *= i;
return out;
}
constexpr Size Size::operator/(int i) const {
constexpr Size Size::operator/(int i) const noexcept {
auto out = *this;
out.width /= i;
out.height /= i;
return out;
}
constexpr Size Size::operator+=(int i) {
constexpr Size Size::operator+=(int i) noexcept {
width += i;
height += i;
return *this;
}
constexpr Size Size::operator-=(int i) {
constexpr Size Size::operator-=(int i) noexcept {
width -= i;
height -= i;
return *this;
}
constexpr Size Size::operator*=(int i) {
constexpr Size Size::operator*=(int i) noexcept {
width *= i;
height *= i;
return *this;
}
constexpr Size Size::operator/=(int i) {
constexpr Size Size::operator/=(int i) noexcept {
width /= i;
height /= i;
return *this;
}
constexpr bool Size::operator==(const Size &p) const {
constexpr bool Size::operator==(const Size &p) const noexcept {
return width == p.width && height == p.height;
}
constexpr bool Size::operator!=(const Size &p) const {
constexpr bool Size::operator!=(const Size &p) const noexcept {
return width != p.width || height != p.height;
}
template<typename T>
ox::Error model(T *io, Size *obj) {
constexpr ox::Error model(T *io, Size *obj) {
io->template setTypeInfo<Size>();
oxReturnError(io->field("width", &obj->width));
oxReturnError(io->field("height", &obj->height));