Template Struct UnaryVecOp#

Inheritance Relationships#

Base Type#

Struct Documentation#

template<typename Val, typename Op>
struct UnaryVecOp : public librapid::vectorDetail::VectorBase<UnaryVecOp<Val, Op>>#

Public Types

using Scalar = typename typetraits::TypeInfo<UnaryVecOp>::Scalar#
using StorageType = typename VectorScalarStorageExtractor<Val>::type#
using IndexTypeConst = typename typetraits::TypeInfo<UnaryVecOp>::IndexTypeConst#
using IndexType = typename typetraits::TypeInfo<UnaryVecOp>::IndexType#
using GetType = typename typetraits::TypeInfo<UnaryVecOp>::GetType#

Public Functions

UnaryVecOp() = default#
UnaryVecOp(const UnaryVecOp&) = default#
UnaryVecOp(UnaryVecOp&&) noexcept = default#
inline UnaryVecOp(const Val &value, const Op &op)#
auto operator=(const UnaryVecOp&) -> UnaryVecOp& = default#
auto operator=(UnaryVecOp&&) noexcept -> UnaryVecOp& = default#
inline Vector<Scalar, dims> eval() const#
template<typename NewScalar, size_t NewDims>
inline auto cast() const#
template<typename NewScalar, size_t NewDims>
inline operator Vector<NewScalar, NewDims>() const#
inline virtual IndexType operator[](int64_t index) const override#
inline virtual IndexType operator[](int64_t index) override#
template<typename T_, typename Char, typename Ctx>
inline void str(const fmt::formatter<T_, Char> &formatter, Ctx &ctx) const#
inline virtual GetType _get(size_t index) const override#

Public Members

Val val#
Op op#

Public Static Attributes

static constexpr size_t dims = StorageType::dims#
static constexpr size_t length = StorageType::length#