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,,,