5 # ifndef VCCC_MATH_MATRIX_MATRIXASSIGNER_H
6 # define VCCC_MATH_MATRIX_MATRIXASSIGNER_H
10 # include <type_traits>
20 template<
typename ExpressionType>
21 static auto create(ExpressionType&& expr) {
22 using traits = internal::math::traits<ExpressionType>;
26 template<
typename ExprType,
typename DstType>
28 assignImpl(internal::math::is_alias_safe_t<ExprType>{}, expr, dst.
derived());
31 template<
typename ExprType,
typename DstType>
37 template<
typename ExprType,
typename DstType>
43 template<
typename ExprType,
typename DstType>
44 static void assignImpl(
alias_unsafe_t,
const MatrixBase<ExprType>& expr, DstType& dst) {
49 dst(i) = std::move(
copy(i));
Definition: matrix_assigner.hpp:15
static void assign(const MatrixBase< ExprType > &expr, MatrixBase< DstType > &dst)
Definition: matrix_assigner.hpp:27
static auto create(ExpressionType &&expr)
Definition: matrix_assigner.hpp:21
std::true_type alias_safe_t
Definition: matrix_assigner.hpp:17
static void assignNocopy(const MatrixBase< ExprType > &expr, MatrixBase< DstType > &dst)
Definition: matrix_assigner.hpp:32
std::false_type alias_unsafe_t
Definition: matrix_assigner.hpp:18
Definition: matrix_base.hpp:20
constexpr const derived_type & derived() const
Definition: matrix_base.hpp:46
A class that represents 2D matrix.
Definition: matrix.hpp:57
constexpr VCCC_INLINE_OR_STATIC detail::copy_niebloid copy
Definition: copy.hpp:69
constexpr VCCC_INLINE_OR_STATIC detail::size_niebloid size
returns the size of a container or array
Definition: size.hpp:145
Definition: directory.h:12