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?