## #6511 closed Bugs (fixed)

# Division by scalar should use enable_if<>

Reported by: | Owned by: | Gunter | |
---|---|---|---|

Milestone: | Boost 1.52.0 | Component: | uBLAS |

Version: | Boost 1.48.0 | Severity: | Problem |

Keywords: | Cc: |

### Description

file: vector_expression.hpp lines 1409 through 1417 function: operator/( vector, scalar)

Should be using the enable_if<> macros just like the operator*() in lines 1397 through 1407 (just above it). Doing so allows further overloading of operator/() for other types. Suggested change is...

Before:

// (v / t) [i] = v [i] / t template<class E1, class T2> BOOST_UBLAS_INLINE typename vector_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::result_type operator / (const vector_expression<E1> &e1, const T2 &e2) { typedef typename vector_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::expression_type expression_type; return expression_type (e1 (), e2); }

After:

// (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 typename vector_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::result_type operator / (const vector_expression<E1> &e1, const T2 &e2) { typedef typename vector_binary_scalar2_traits<E1, const T2, scalar_divides<typename E1::value_type, T2> >::expression_type expression_type; return expression_type (e1 (), e2); }

### Attachments (0)

### Change History (6)

### comment:1 Changed 5 years ago by

### comment:2 Changed 5 years ago by

Status: | new → assigned |
---|---|

Version: | Boost 1.48.0 → Boost 1.52.0 |

### comment:3 Changed 5 years ago by

Milestone: | To Be Determined → Boost 1.52.0 |
---|---|

Version: | Boost 1.52.0 → Boost 1.48.0 |

updated wrong field ^{}

### comment:4 Changed 5 years ago by

Resolution: | → fixed |
---|---|

Status: | assigned → closed |

### comment:5 follow-up: 6 Changed 5 years ago by

Sorry to do this to you after the ticket has already closed...

But, did you happen to make the corresponding change to matrix_expression.hpp?

### comment:6 Changed 5 years ago by

Replying to Sean Reilly <campreilly@…>:

But, did you happen to make the corresponding change to matrix_expression.hpp?

No, only vector_expression has been patched for this ticket.

**Note:**See TracTickets for help on using tickets.

(In [80270]) boost/numeric/ublas/vector_expression.hpp - use enable_if for operator/(vector, scalar), see #6511