id summary reporter owner description type status milestone component version severity resolution keywords cc 8360 Multiplication operator should allow non-commutative version Jaap Eldering Daniel Frey "The multipliable2 template in `boost/operators.hpp` is defined with the `BOOST_BINARY_OPERATOR_COMMUTATIVE` macro. This macro defines multiplication of types T and U in both orders in terms of `T *= U`. This assumes that multiplication is commutative, which is not generally true. For example when T is a nxn matrix type with double entries and U a nxn matrix with integer entries, then `T *= U` makes sense, but `operators.hpp` would define `U * T` using `T *= U`. Since matrix multiplication is not commutative, this would give wrong results. Suggested solution: make `multipliable2` use the NONCOMMUTATIVE macro, or add another `multipliable2_nc` template." Bugs new To Be Determined operators Boost 1.53.0 Problem