Skip to content
Welcome to the new CppUtils documentation!
constexpr Vec::Vec() = default;

template <std::convertible_to< T >... Args>
constexpr Vec::Vec(Args&&... args);

[[nodiscard]] constexpr auto Vec::operator[](this auto&& self [[clang::lifetimebound, msvc::lifetimebound]], std::size_t axis) noexcept -> decltype(auto);

[[nodiscard]] constexpr auto Vec::operator==(const Vec<N, T>& rhs) const noexcept -> bool;

constexpr auto Vec::apply(this auto&& self, auto&& function) noexcept -> decltype(auto);

constexpr auto Vec::operator+=(this auto&& self, const Vec<N, T> &rhs) noexcept -> decltype(auto);

constexpr auto Vec::operator-=(this auto&& self, const Vec<N, T> &rhs) noexcept -> decltype(auto);

constexpr auto Vec::operator*=(this auto&& self, T value) noexcept -> decltype(auto);

constexpr auto Vec::operator/=(this auto&& self, T value) noexcept -> decltype(auto);

constexpr auto Vec::operator+(this auto&& self, const Vec<N, T> &rhs) noexcept -> std::remove_cvref_t<decltype(self)>;

constexpr auto Vec::operator-(this auto&& self, const Vec<N, T> &rhs) noexcept -> std::remove_cvref_t<decltype(self)>;

constexpr auto Vec::operator*(this auto&& self, T value) noexcept -> std::remove_cvref_t<decltype(self)>;

[[nodiscard]] constexpr auto Vec::operator/(this auto&& self, T value) noexcept -> std::remove_cvref_t<decltype(self)> requires (std::is_arithmetic_v<T>) { auto result = self; result /= value; return result; } std::array<T, N> m_values;

std::array< T, N > m_values;