@@ -248,9 +248,9 @@ inline std::ostream &operator<<(std::ostream & s, const Matrix<REALSXP, StorageP
248248}
249249
250250#define RCPP_GENERATE_MATRIX_SCALAR_OPERATOR (__OPERATOR__ ) \
251- template <int RTYPE, template <class > class StoragePolicy > \
251+ template <int RTYPE, template <class > class StoragePolicy , typename T > \
252252 inline Matrix<RTYPE, StoragePolicy> operator __OPERATOR__ (const Matrix<RTYPE, StoragePolicy> &lhs, \
253- const typename Matrix<RTYPE, StoragePolicy>::stored_type & rhs) { \
253+ T rhs) { \
254254 Vector<RTYPE, StoragePolicy> v = static_cast <const Vector<RTYPE, StoragePolicy> &>(lhs) __OPERATOR__ rhs; \
255255 v.attr (" dim" ) = Vector<INTSXP>::create (lhs.nrow (), lhs.ncol ()); \
256256 return as< Matrix<RTYPE, StoragePolicy> >(v); \
@@ -264,8 +264,8 @@ RCPP_GENERATE_MATRIX_SCALAR_OPERATOR(/)
264264#undef RCPP_GENERATE_MATRIX_SCALAR_OPERATOR
265265
266266#define RCPP_GENERATE_SCALAR_MATRIX_OPERATOR (__OPERATOR__ ) \
267- template <int RTYPE, template <class > class StoragePolicy > \
268- inline Matrix<RTYPE, StoragePolicy> operator __OPERATOR__ (const typename Matrix<RTYPE, StoragePolicy>::stored_type &lhs, \
267+ template <int RTYPE, template <class > class StoragePolicy , typename T > \
268+ inline Matrix<RTYPE, StoragePolicy> operator __OPERATOR__ (T lhs, \
269269 const Matrix<RTYPE, StoragePolicy> &rhs) { \
270270 Vector<RTYPE, StoragePolicy> v = static_cast <const Vector<RTYPE, StoragePolicy> &>(rhs); \
271271 v = lhs __OPERATOR__ v; \
0 commit comments