24 using array_type = simd<T, 4>;
26 constexpr margins(margins
const&)
noexcept =
default;
27 constexpr margins(margins&&)
noexcept =
default;
28 constexpr margins& operator=(margins
const&)
noexcept =
default;
29 constexpr margins& operator=(margins&&)
noexcept =
default;
31 [[nodiscard]]
constexpr margins() noexcept : _v() {}
32 [[nodiscard]]
constexpr margins(value_type margin) noexcept : _v(margin, margin, margin, margin) {}
33 [[nodiscard]]
constexpr margins(value_type left, value_type bottom, value_type right, value_type top) noexcept :
34 _v(left, bottom, right, top)
37 [[nodiscard]]
constexpr explicit margins(array_type v) noexcept : _v(v) {}
39 [[nodiscard]]
constexpr explicit operator array_type()
const noexcept
44 [[nodiscard]]
constexpr value_type left()
const noexcept
49 [[nodiscard]]
constexpr value_type& left()
noexcept
54 [[nodiscard]]
constexpr value_type bottom()
const noexcept
59 [[nodiscard]]
constexpr value_type& bottom()
noexcept
64 [[nodiscard]]
constexpr value_type right()
const noexcept
69 [[nodiscard]]
constexpr value_type& right()
noexcept
74 [[nodiscard]]
constexpr value_type top()
const noexcept
79 [[nodiscard]]
constexpr value_type& top()
noexcept
85 [[nodiscard]]
constexpr friend value_type get(margins
const& rhs)
noexcept
87 return get<I>(rhs._v);
90 [[nodiscard]]
constexpr value_type operator[](
std::size_t i)
const noexcept
95 constexpr margins& operator+=(margins
const& rhs)
noexcept
101 [[nodiscard]]
constexpr friend margins round(margins
const& rhs)
noexcept
103 return margins{round(rhs._v)};
106 [[nodiscard]]
constexpr friend margins floor(margins
const& rhs)
noexcept
108 return margins{floor(rhs._v)};
111 [[nodiscard]]
constexpr friend margins ceil(margins
const& rhs)
noexcept
113 return margins{ceil(rhs._v)};
116 [[nodiscard]]
constexpr friend margins max(margins
const& lhs, margins
const& rhs)
noexcept
118 return margins{max(lhs._v, rhs._v)};
121 [[nodiscard]]
constexpr friend bool operator==(margins
const& lhs, margins
const& rhs)
noexcept
123 return equal(lhs._v, rhs._v);