boost::operators automatically defines operators like + based on manual implementations like += which is very useful. To generate those op
There's a big multiple inheritance chain, at the top of which there are a number of classes that implement the operators, but do so as friend functions, thus placing them in the enclosing namespace rather than as members of the class.
For example, the final implementation of operator+ becomes:
template <class T, class U, class B = ::boost::detail::empty_base<T> >
struct addable2 : B
{
friend T operator +( T lhs, const U& rhs ) { return lhs += rhs; }
friend T operator +( const U& lhs, T rhs ) { return rhs += lhs; }
};