|
| constexpr | Vector ()=default |
| |
| constexpr | Vector (const Vector &)=default |
| |
| constexpr | Vector (Vector &&)=default |
| |
| constexpr | Vector (const T &value) |
| |
template<typename... Elements>
requires ( (sizeof...(Elements) == N) and (std::constructible_from<T, Elements> and ...) ) |
| | not (std::convertible_to< Elements, T > and ...)) const expr Vector(Elements &&... elements) |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeGreaterThanOrEqualTo<R, N> and std::constructible_from<T, typename std::remove_cvref_t<R>::value_type> ) |
| not std::convertible_to< typename std::remove_cvref_t< R >::value_type, T > constexpr | Vector (R &&r) |
| |
template<typename U , size_t M, typename... Elements>
requires ( M < N and ((M + sizeof...(Elements)) == N) and std::constructible_from<T, U> and (std::constructible_from<T, Elements> and ...) ) |
| constexpr | Vector (const Vector< U, M > &v, Elements &&... elements) |
| |
| | ~Vector () noexcept=default |
| |
| constexpr Vector & | operator= (const Vector &)=default |
| |
| constexpr Vector & | operator= (Vector &&)=default |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeGreaterThanOrEqualTo<R, N> and std::assignable_from<T&, typename std::remove_cvref_t<R>::value_type> ) |
| constexpr Vector & | operator= (R &&r) |
| |
| constexpr size_type | size () const |
| |
| constexpr pointer | data () |
| |
| constexpr const_pointer | data () const |
| |
| constexpr iterator | begin () |
| |
| constexpr const_iterator | begin () const |
| |
| constexpr iterator | end () |
| |
| constexpr const_iterator | end () const |
| |
| constexpr reference | operator[] (size_type pos) |
| |
| constexpr const_reference | operator[] (size_type pos) const |
| |
| constexpr reference | x () |
| | Returns (*this)[0]
|
| |
| constexpr const_reference | x () const |
| | Returns (*this)[0]
|
| |
| constexpr reference | y () |
| | Returns (*this)[1]
|
| |
| constexpr const_reference | y () const |
| | Returns (*this)[0]
|
| |
| constexpr reference | z () |
| | Returns (*this)[2]
|
| |
| constexpr const_reference | z () const |
| | Returns (*this)[0]
|
| |
| constexpr reference | w () |
| | Returns (*this)[3]
|
| |
| constexpr const_reference | w () const |
| | Returns (*this)[0]
|
| |
| constexpr Vector< T, 2 > | xy () const |
| | Returns Vector<T, 2>{x(), y()}
|
| |
| constexpr Vector< T, 2 > | xz () const |
| | Returns Vector<T, 2>{x(), z()}
|
| |
| constexpr Vector< T, 2 > | yx () const |
| | Returns Vector<T, 2>{y(), x()}
|
| |
| constexpr Vector< T, 2 > | yz () const |
| | Returns {y(), z()}
|
| |
| constexpr Vector< T, 2 > | zx () const |
| | Returns {z(), x()}
|
| |
| constexpr Vector< T, 2 > | zy () const |
| | Returns {z(), y()}
|
| |
| constexpr | operator std::span< T, N > () |
| |
| constexpr | operator std::span< const T, N > () const |
| |
template<typename U >
requires (requires (T& lhs, const U& rhs) { lhs += rhs; }) |
| constexpr Vector & | operator+= (const U &rhs) |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeEqualTo<R, N> and requires (T& lhs, const R& rhs) { lhs += rhs[0]; } ) |
| constexpr Vector & | operator+= (const R &rhs) |
| |
template<typename U >
requires (requires (T& lhs, const U& rhs) { lhs -= rhs; }) |
| constexpr Vector & | operator-= (const U &rhs) |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeEqualTo<R, N> and requires (T& lhs, const R& rhs) { lhs -= rhs[0]; } ) |
| constexpr Vector & | operator-= (const R &rhs) |
| |
template<typename U >
requires (requires (T& lhs, const U& rhs) { lhs *= rhs; }) |
| constexpr Vector & | operator*= (const U &rhs) |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeEqualTo<R, N> and requires (T& lhs, const R& rhs) { lhs *= rhs[0]; } ) |
| constexpr Vector & | operator*= (const R &rhs) |
| |
template<typename U >
requires (requires (T& lhs, const U& rhs) { lhs /= rhs; }) |
| constexpr Vector & | operator/= (const U &rhs) |
| |
template<std::ranges::contiguous_range R>
requires ( detail::CompileTimeSizeEqualTo<R, N> and requires (T& lhs, const R& rhs) { lhs /= rhs[0]; } ) |
| constexpr Vector & | operator/= (const R &rhs) |
| |
| constexpr Vector & | operator++ () |
| |
| constexpr Vector & | operator-- () |
| |
| constexpr Vector | operator++ (int) |
| |
| constexpr Vector | operator-- (int) |
| |
template<typename U >
requires std::constructible_from<T, U> |
| constexpr Vector | with_element (size_type pos, U value) const |
| |