← API Reference Class

template<std::size_t N, _internal::Numeric T, typename Derived = void> asge::math::VecN

#include <VectorN.hpp>

Collaboration

classDiagram
    class N2["T"]
    class N1["asge::math::VecN"]
    N1 --> N2 : m_Vector
    click N1 href "classasge_1_1math_1_1VecN.html"

Protected Types

#using actual_derived = std::conditional_t< std::is_void_v< Derived >, VecN, Derived >protected
#using rebind_actual_derived_t = typename _internal::rebind_derived_trait< actual_derived >::template type< U >protected

Public Types

#using value_type = T
#using reference = value_type &
#using const_reference = value_type const &
#using pointer = value_type *
#using const_pointer = value_type const *
#using size_type = std::size_t
#using difference_type = std::ptrdiff_t
#using iterator = pointer
#using const_iterator = const_pointer

Protected Attributes

#T m_Vector[N]protected

Protected Member Functions

#actual_derived & Self()protected
#actual_derived const & Self() constprotected

Static Protected Member Functions

#template<typename _OutIter, typename _InIter1, typename _InIter2, typename BinaryOp> static void _ApplyBinaryIter(_OutIter inOut, _InIter1 inIter1, _InIter2 inIter2, BinaryOp op)protected
#template<typename _OutIter, typename _InIter, typename _Scalar, typename BinaryOp> static void _ApplyBinaryScalar(_OutIter inOut, _InIter inIter, _Scalar inScalar, BinaryOp op)protected

Public Member Functions

#VecN()=default
#template<_internal::Numeric... Us> constexpr VecN(Us... inValues)
#explicit VecN(value_type const inValue)
#constexpr VecN(std::initializer_list< T > inList)
#VecN(VecN const &inOther) noexcept
#VecN(VecN &&inOther) noexcept
#VecN & operator=(VecN const &inOther) noexcept
#VecN & operator=(VecN &&inOther) noexcept
#virtual ~VecN()=default
#constexpr void Fill(value_type const inValue) noexcept
#constexpr void Zeros() noexcept
#constexpr size_type Size() const noexcept
#constexpr bool Empty() const noexcept
#constexpr reference operator[](size_type inPos)
#constexpr const_reference operator[](size_type inPos) const
#pointer Data() noexcept
#const_pointer Data() const noexcept
#template<_internal::Numeric U, typename OtherDerived> auto operator+(VecN< N, U, OtherDerived > const &inOther) const noexcept
#template<_internal::Numeric U, typename OtherDerived> auto operator-(VecN< N, U, OtherDerived > const &inOther) const noexcept
#template<_internal::Numeric U, typename OtherDerived> auto operator*(VecN< N, U, OtherDerived > const &inOther) const noexcept
#template<_internal::Numeric U, typename OtherDerived> auto operator/(VecN< N, U, OtherDerived > const &inOther) const noexcept
#template<_internal::Numeric U> auto operator*(U const &inScalar) const noexcept
#template<_internal::Numeric U> auto operator/(U const &inScalar) const noexcept
#template<_internal::Numeric U, typename OtherDerived> auto & operator+=(VecN< N, U, OtherDerived > const &inOther) noexcept
#template<_internal::Numeric U, typename OtherDerived> auto & operator-=(VecN< N, U, OtherDerived > const &inOther) noexcept
#template<_internal::Numeric U, typename OtherDerived> auto & operator*=(VecN< N, U, OtherDerived > const &inOther) noexcept
#template<_internal::Numeric U, typename OtherDerived> auto & operator/=(VecN< N, U, OtherDerived > const &inOther) noexcept
#template<_internal::Numeric U> auto & operator*=(U const &inOther) noexcept
#template<_internal::Numeric U> auto & operator/=(U const &inOther) noexcept

Static Public Member Functions

#static VecN Zero() noexcept

Friends

#friend operator*
#friend operator/