Looking at Boost::Optional optional class template header I come across this:
T const& operator*() const&
T&       operator*() &;
T&&      operator*() &&;
For the life of me I can't find this syntax anywhere else (a reference as the last symbol) I would assume it has something to do with overloading on the type(const l-val, l-val, r-val) of the object the operator belongs to, but I haven't seen this described anywhere.
Could someone tell me what this syntax means?
 
    