35#ifndef _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_SHAREDVALUE_H_
36#define _BLAZE_MATH_ADAPTORS_SYMMETRICMATRIX_SHAREDVALUE_H_
67template<
typename Type >
131 void* operator&() const;
158template< typename Type >
172template<
typename Type >
174 :
value_( new Type( value ) )
192template<
typename Type >
196 value_.reset(
new Type() );
207template<
typename Type >
211 value_.reset(
new Type() );
230template<
typename Type >
249template<
typename T1,
typename T2 >
252template<
typename T1,
typename T2 >
266template<
typename T1,
typename T2 >
269 return ( lhs.
base() == rhs.
base() );
282template<
typename T1,
typename T2 >
285 return ( lhs.
base() != rhs.
base() );
301template< RelaxationFlag RF,
typename Type >
302bool isDefault(
const SharedValue<Type>& value );
304template< RelaxationFlag RF,
typename T1,
typename T2 >
305bool equal(
const SharedValue<T1>& lhs,
const SharedValue<T2>& rhs );
320template< RelaxationFlag RF,
typename Type >
325 return isDefault<RF>( *value );
342template< RelaxationFlag RF,
typename T1,
typename T2 >
345 return equal<RF>( *a, *b );
Constraint on the data type.
Constraint on the data type.
Constraint on the data type.
Header file for the relaxation flag enumeration.
Constraint on the data type.
Value shared among several positions within a symmetric matrix.
Definition: SharedValue.h:69
Pointer base() const noexcept
Low-level access to the underlying, shared value.
Definition: SharedValue.h:231
Type * Pointer
Pointer to the shared value.
Definition: SharedValue.h:75
Type & Reference
Reference to the shared value.
Definition: SharedValue.h:73
const Type & ConstReference
Reference-to-const to the shared value.
Definition: SharedValue.h:74
Type ValueType
Type of the shared value.
Definition: SharedValue.h:72
Reference operator*()
Direct access to the shared value.
Definition: SharedValue.h:193
const Type * ConstPointer
Pointer-to-const to the shared value.
Definition: SharedValue.h:76
std::shared_ptr< Type > value_
The shared value.
Definition: SharedValue.h:124
SharedValue()
Default constructor for a SharedValue.
Definition: SharedValue.h:159
#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
bool equal(const SharedValue< T1 > &lhs, const SharedValue< T2 > &rhs)
Equality check for a two shared values.
Definition: SharedValue.h:343
bool operator!=(const SharedValue< T1 > &lhs, const SharedValue< T2 > &rhs)
Inequality comparison between two SharedValue objects.
Definition: SharedValue.h:283
bool operator==(const SharedValue< T1 > &lhs, const SharedValue< T2 > &rhs)
Equality comparison between two SharedValue objects.
Definition: SharedValue.h:267
bool isDefault(const SharedValue< Type > &value)
Returns whether the shared value is in default state.
Definition: SharedValue.h:321