mirror of
https://github.com/boostorg/ublas.git
synced 2026-02-22 03:42:19 +00:00
see #3397
vector_expression.hpp: added enable_if to expression scalar * vector and vector * scalar matrix_expression.hpp: added enable_if to expression scalar * matrix and matrix * scalar svn path=/trunk/boost/numeric/ublas/; revision=56045
This commit is contained in:
@@ -2940,7 +2940,9 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
// (t * m) [i] [j] = t * m [i] [j]
|
||||
template<class T1, class E2>
|
||||
BOOST_UBLAS_INLINE
|
||||
typename enable_if< is_convertible<T1, typename E2::value_type >,
|
||||
typename matrix_binary_scalar1_traits<const T1, E2, scalar_multiplies<T1, typename E2::value_type> >::result_type
|
||||
>::type
|
||||
operator * (const T1 &e1,
|
||||
const matrix_expression<E2> &e2) {
|
||||
typedef typename matrix_binary_scalar1_traits<const T1, E2, scalar_multiplies<T1, typename E2::value_type> >::expression_type expression_type;
|
||||
@@ -3373,7 +3375,9 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
// (m * t) [i] [j] = m [i] [j] * t
|
||||
template<class E1, class T2>
|
||||
BOOST_UBLAS_INLINE
|
||||
typename enable_if< is_convertible<T2, typename E1::value_type>,
|
||||
typename matrix_binary_scalar2_traits<E1, const T2, scalar_multiplies<typename E1::value_type, T2> >::result_type
|
||||
>::type
|
||||
operator * (const matrix_expression<E1> &e1,
|
||||
const T2 &e2) {
|
||||
typedef typename matrix_binary_scalar2_traits<E1, const T2, scalar_multiplies<typename E1::value_type, T2> >::expression_type expression_type;
|
||||
|
||||
@@ -1170,7 +1170,9 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
// (t * v) [i] = t * v [i]
|
||||
template<class T1, class E2>
|
||||
BOOST_UBLAS_INLINE
|
||||
typename enable_if< is_convertible<T1, typename E2::value_type >,
|
||||
typename vector_binary_scalar1_traits<const T1, E2, scalar_multiplies<T1, typename E2::value_type> >::result_type
|
||||
>::type
|
||||
operator * (const T1 &e1,
|
||||
const vector_expression<E2> &e2) {
|
||||
typedef typename vector_binary_scalar1_traits<const T1, E2, scalar_multiplies<T1, typename E2::value_type> >::expression_type expression_type;
|
||||
@@ -1395,7 +1397,9 @@ namespace boost { namespace numeric { namespace ublas {
|
||||
// (v * t) [i] = v [i] * t
|
||||
template<class E1, class T2>
|
||||
BOOST_UBLAS_INLINE
|
||||
typename enable_if< is_convertible<T2, typename E1::value_type >,
|
||||
typename vector_binary_scalar2_traits<E1, const T2, scalar_multiplies<typename E1::value_type, T2> >::result_type
|
||||
>::type
|
||||
operator * (const vector_expression<E1> &e1,
|
||||
const T2 &e2) {
|
||||
typedef typename vector_binary_scalar2_traits<E1, const T2, scalar_multiplies<typename E1::value_type, T2> >::expression_type expression_type;
|
||||
|
||||
Reference in New Issue
Block a user