Put operator overloads for Size outside class
This commit is contained in:
parent
f0e89f837b
commit
5476836208
1 changed files with 22 additions and 19 deletions
|
@ -9,26 +9,29 @@ namespace bwidgets
|
|||
{
|
||||
int w;
|
||||
int h;
|
||||
|
||||
[[nodiscard]] inline auto operator-() const noexcept -> Size
|
||||
{
|
||||
return {-w, -h};
|
||||
}
|
||||
[[nodiscard]] inline auto operator+(const Size& s) const noexcept -> Size
|
||||
{
|
||||
return {w + s.w, h + s.h};
|
||||
}
|
||||
[[nodiscard]] inline auto operator-(const Size& s) const noexcept -> Size
|
||||
{
|
||||
return {w - s.w, h - s.h};
|
||||
}
|
||||
|
||||
template<Numeric N>
|
||||
[[nodiscard]] inline auto operator*(N a) const noexcept -> Size
|
||||
{
|
||||
return {a * w, a * h};
|
||||
}
|
||||
};
|
||||
|
||||
[[nodiscard]] inline auto operator+(Size a, Size b) noexcept -> Size
|
||||
{
|
||||
return {a.w + b.w, a.h + b.h};
|
||||
}
|
||||
|
||||
[[nodiscard]] inline auto operator-(Size a, Size b) noexcept -> Size
|
||||
{
|
||||
return {a.w - b.w, a.h - b.h};
|
||||
}
|
||||
|
||||
template<Numeric N>
|
||||
[[nodiscard]] inline auto operator*(Size a, N b) noexcept -> Size
|
||||
{
|
||||
return {a.w * b, a.h * b};
|
||||
}
|
||||
|
||||
template<Numeric N>
|
||||
[[nodiscard]] inline auto operator*(N a, Size b) noexcept -> Size
|
||||
{
|
||||
return b * a;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue