
I'm haveing some problems figuring out how to use boost/numeric/operators library. OK - I understand how to use template<class T> struct my_type : boost::numeric::operators<T> { T & operator+=(T & rhs); // automatically generate operator+, etc // ... }; so that one can use my_type<int> x, y, z; z = x + y; // etc.. There is a simple example like this in the documentation. So far so good. Now given: int & operator+=(int & lhs, my_type<int>); I want to use operators<T, U> to generate int operator+(int & lhs, my_type<int>); // etc. After studying the documenation, examples and code, the best I can come up with is: template<class T, class U> class helper : public boost::operators<T, U>{ }; T operator+(T & lhs, U & rhs){ helper<T, U>::operator+(lhs, rhs); // automatically generated + operator } // other non member operators forwarding to helper Am I doing this corrrectly? How did the authors of operators.hpp intend the two argument versions to be used? Robert Ramey