Template Struct BinaryVecOp#

Inheritance Relationships#

Base Type#

Struct Documentation#

template<typename LHS, typename RHS, typename Op>
struct BinaryVecOp : public librapid::vectorDetail::VectorBase<BinaryVecOp<LHS, RHS, Op>>#

Public Types

using Scalar = typename typetraits::TypeInfo<BinaryVecOp>::Scalar#
using StorageLHS = typename VectorScalarStorageExtractor<LHS>::type#
using StorageRHS = typename VectorScalarStorageExtractor<RHS>::type#
using StorageType = VectorStorageMerger<StorageLHS, StorageRHS>#
using IndexTypeConst = typename typetraits::TypeInfo<BinaryVecOp>::IndexTypeConst#
using IndexType = typename typetraits::TypeInfo<BinaryVecOp>::IndexType#
using GetType = typename typetraits::TypeInfo<BinaryVecOp>::GetType#

Public Functions

BinaryVecOp() = default#
BinaryVecOp(const BinaryVecOp&) = default#
BinaryVecOp(BinaryVecOp&&) noexcept = default#
inline BinaryVecOp(const LHS &lhs, const RHS &rhs, const Op &op)#
auto operator=(const BinaryVecOp&) -> BinaryVecOp& = default#
auto operator=(BinaryVecOp&&) noexcept -> BinaryVecOp& = 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

LHS left#
RHS right#
Op op#

Public Static Attributes

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