-=(const point&amp;);
    // point operator-(point, const point&amp;) automatically
    // generated by subtractable.

    point operator*=(T);
    // point operator*(point, const T&amp;) and
    // point operator*(const T&amp;, point) auto-generated
    // by multipliable.

    point operator/=(T);
    // point operator/(point, const T&amp;) auto-generated
    // by dividable.
private:
    T x_;
    T y_;
};

// now use the point&lt;&gt; class:

template &lt;class T&gt;
T length(const point&lt;T&gt; p)
{
 