diff --git a/include/armadillo_bits/subview_bones.hpp b/include/armadillo_bits/subview_bones.hpp index b75ed967..b324ab13 100644 --- a/include/armadillo_bits/subview_bones.hpp +++ b/include/armadillo_bits/subview_bones.hpp @@ -364,6 +364,7 @@ class subview_col : public subview inline void operator= (const subview& x); inline void operator= (const subview_col& x); inline void operator= (const eT val); + inline void operator= (const std::initializer_list& list); template inline void operator= (const Base& x); @@ -452,6 +453,7 @@ class subview_row : public subview inline void operator= (const subview& x); inline void operator= (const subview_row& x); inline void operator= (const eT val); + inline void operator= (const std::initializer_list& list); template inline void operator= (const Base& x); diff --git a/include/armadillo_bits/subview_meat.hpp b/include/armadillo_bits/subview_meat.hpp index d1111766..f7d29136 100644 --- a/include/armadillo_bits/subview_meat.hpp +++ b/include/armadillo_bits/subview_meat.hpp @@ -3157,6 +3157,22 @@ subview_col::operator=(const subview_col& X) +template +inline +void +subview_col::operator=(const std::initializer_list& list) + { + arma_extra_debug_sigprint(); + + const uword N = uword(list.size()); + + arma_debug_assert_same_size(subview::n_rows, subview::n_cols, N, 1, "copy into submatrix"); + + arrayops::copy( access::rwp(colmem), list.begin(), N ); + } + + + template inline void @@ -3761,6 +3777,28 @@ subview_row::operator=(const eT val) +template +inline +void +subview_row::operator=(const std::initializer_list& list) + { + arma_extra_debug_sigprint(); + + const uword N = uword(list.size()); + + arma_debug_assert_same_size(subview::n_rows, subview::n_cols, 1, N, "copy into submatrix"); + + auto it = list.begin(); + + for(uword ii=0; ii < N; ++ii) + { + (*this).operator[](ii) = (*it); + ++it; + } + } + + + template template inline