35#ifndef _BLAZE_MATH_SPARSE_VALUEINDEXPAIR_H_
36#define _BLAZE_MATH_SPARSE_VALUEINDEXPAIR_H_
72template<
typename Type >
108 template<
typename Other >
109 constexpr auto operator=(
const Other& rhs )
112 template<
typename Other >
113 constexpr auto operator=( Other&& rhs )
117 template<
typename Other >
118 constexpr auto operator=(
const Other& v )
121 template<
typename Other >
122 constexpr auto operator=( Other&& v )
126 template<
typename Other >
constexpr ValueIndexPair& operator+=(
const Other& v );
127 template<
typename Other >
constexpr ValueIndexPair& operator-=(
const Other& v );
128 template<
typename Other >
constexpr ValueIndexPair& operator*=(
const Other& v );
129 template<
typename Other >
constexpr ValueIndexPair& operator/=(
const Other& v );
181template< typename Type >
195template<
typename Type >
221template<
typename Type >
222template<
typename Other >
226 value_ = rhs.
value();
227 index_ = rhs.index();
243template<
typename Type >
244template<
typename Other >
249 value_ = std::move( rhs.value() );
250 index_ = rhs.index();
262template<
typename Type >
263template<
typename Other >
279template<
typename Type >
280template<
typename Other >
281constexpr auto ValueIndexPair<Type>::operator=( Other&& v )
282 -> EnableIf_t< !IsSparseElement_v< RemoveReference_t<Other> > &&
283 IsRValueReference_v<Other&&>, ValueIndexPair& >
285 value_ = std::move( v );
297template<
typename Type >
298template<
typename Other >
313template<
typename Type >
314template<
typename Other >
329template<
typename Type >
330template<
typename Other >
345template<
typename Type >
346template<
typename Other >
368template<
typename Type >
382template<
typename Type >
396template<
typename Type >
Constraint on the data type.
Header file for the EnableIf class template.
Header file for the IsRValueReference type trait.
Header file for the IsSparseElement type trait class.
Constraint on the data type.
Constraint on the data type.
Header file for the RemoveReference type trait.
Constraint on the data type.
Index-value-pair for sparse vectors and matrices.
Definition: ValueIndexPair.h:75
size_t index_
Index of the value-index-pair.
Definition: ValueIndexPair.h:147
constexpr IndexType index() const noexcept
Access to the current index of the value-index-pair.
Definition: ValueIndexPair.h:398
const Type & ConstReference
Reference-to-const return type.
Definition: ValueIndexPair.h:81
Type & Reference
Reference return type.
Definition: ValueIndexPair.h:80
constexpr ValueIndexPair()
Default constructor for value-index-pairs.
Definition: ValueIndexPair.h:182
Type ValueType
The value type of the value-index-pair.
Definition: ValueIndexPair.h:78
constexpr Reference value() noexcept
Access to the current value of the value-index-pair.
Definition: ValueIndexPair.h:370
Type value_
Value of the value-index-pair.
Definition: ValueIndexPair.h:146
size_t IndexType
The index type of the value-index-pair.
Definition: ValueIndexPair.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_VOLATILE(T)
Constraint on the data type.
Definition: Volatile.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_POINTER_TYPE(T)
Constraint on the data type.
Definition: Pointer.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_CONST(T)
Constraint on the data type.
Definition: Const.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_REFERENCE_TYPE(T)
Constraint on the data type.
Definition: Reference.h:79
typename EnableIf< Condition, T >::Type EnableIf_t
Auxiliary type for the EnableIf class template.
Definition: EnableIf.h:138
Header file for the SparseElement base class.
Base class for all sparse element types.
Definition: SparseElement.h:58
Header file for basic type definitions.
Header file for the And_t alias template.
Header file for the Not_t alias template.