@@ -248,9 +248,9 @@ inline std::ostream &operator<<(std::ostream & s, const Matrix<REALSXP, StorageP
248
248
}
249
249
250
250
#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 > \
252
252
inline Matrix<RTYPE, StoragePolicy> operator __OPERATOR__ (const Matrix<RTYPE, StoragePolicy> &lhs, \
253
- const typename Matrix<RTYPE, StoragePolicy>::stored_type & rhs) { \
253
+ T rhs) { \
254
254
Vector<RTYPE, StoragePolicy> v = static_cast <const Vector<RTYPE, StoragePolicy> &>(lhs) __OPERATOR__ rhs; \
255
255
v.attr (" dim" ) = Vector<INTSXP>::create (lhs.nrow (), lhs.ncol ()); \
256
256
return as< Matrix<RTYPE, StoragePolicy> >(v); \
@@ -264,8 +264,8 @@ RCPP_GENERATE_MATRIX_SCALAR_OPERATOR(/)
264
264
#undef RCPP_GENERATE_MATRIX_SCALAR_OPERATOR
265
265
266
266
#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, \
269
269
const Matrix<RTYPE, StoragePolicy> &rhs) { \
270
270
Vector<RTYPE, StoragePolicy> v = static_cast <const Vector<RTYPE, StoragePolicy> &>(rhs); \
271
271
v = lhs __OPERATOR__ v; \
0 commit comments