I'm reading boost documentation and see the following at http://www.boost.org/doc/libs/1_54_0/doc/html/lambda/le_in_details.html :
Operators that cannot be overloaded
Some operators cannot be overloaded at all (::, ., .*). For some operators, the requirements on return types prevent them to be overloaded to create lambda functors. These operators are ->., ->, new, new[], delete, delete[] and ?: (the conditional operator).
So what is the operator ->. ? I tried Google and http://www.symbolhound.com/ but didn't get anything useful, searching on N3337 gives 1 result that is -> at the end of a sentence, and Visual Studio 2012 won't compile:
class xT {
    bool operator ->. () {} /* fail */
};
std::string* p;
p->.size(); /* fail */
std::auto_ptr<std::string> a;
a->.size(); /* fail */
I believe the author intentionally wrote ->. since -> and . is also included, but what is ->., or why it is here?
 
     
     
     
    