subview_col/subview_row setting via initializer_list

This commit is contained in:
conrad
2020-11-10 11:33:36 +10:00
parent 41176cee37
commit 56c08ad518
2 changed files with 40 additions and 0 deletions
+2
View File
@@ -364,6 +364,7 @@ class subview_col : public subview<eT>
inline void operator= (const subview<eT>& x);
inline void operator= (const subview_col& x);
inline void operator= (const eT val);
inline void operator= (const std::initializer_list<eT>& list);
template<typename T1>
inline void operator= (const Base<eT,T1>& x);
@@ -452,6 +453,7 @@ class subview_row : public subview<eT>
inline void operator= (const subview<eT>& x);
inline void operator= (const subview_row& x);
inline void operator= (const eT val);
inline void operator= (const std::initializer_list<eT>& list);
template<typename T1>
inline void operator= (const Base<eT,T1>& x);
+38
View File
@@ -3157,6 +3157,22 @@ subview_col<eT>::operator=(const subview_col<eT>& X)
template<typename eT>
inline
void
subview_col<eT>::operator=(const std::initializer_list<eT>& list)
{
arma_extra_debug_sigprint();
const uword N = uword(list.size());
arma_debug_assert_same_size(subview<eT>::n_rows, subview<eT>::n_cols, N, 1, "copy into submatrix");
arrayops::copy( access::rwp(colmem), list.begin(), N );
}
template<typename eT>
inline
void
@@ -3761,6 +3777,28 @@ subview_row<eT>::operator=(const eT val)
template<typename eT>
inline
void
subview_row<eT>::operator=(const std::initializer_list<eT>& list)
{
arma_extra_debug_sigprint();
const uword N = uword(list.size());
arma_debug_assert_same_size(subview<eT>::n_rows, subview<eT>::n_cols, 1, N, "copy into submatrix");
auto it = list.begin();
for(uword ii=0; ii < N; ++ii)
{
(*this).operator[](ii) = (*it);
++it;
}
}
template<typename eT>
template<typename T1>
inline