我正在阅读 boost 文档,并在http://www.boost.org/doc/libs/1_54_0/doc/html/lambda/le_in_details.html看到以下内容:
不能重载的运算符
有些运算符根本不能重载(::, ., .*)。对于某些运算符,对返回类型的要求阻止它们被重载以创建 lambda 仿函数。这些运算符是->。、->、new、new[]、delete、delete[] 和 ?:(条件运算符)。
那么什么是运营商->.
?我尝试了 Google 和http://www.symbolhound.com/但没有得到任何有用的信息,在N3337上搜索会得到 1->
个位于句子末尾的结果,并且 Visual Studio 2012 不会编译:
class xT {
bool operator ->. () {} /* fail */
};
std::string* p;
p->.size(); /* fail */
std::auto_ptr<std::string> a;
a->.size(); /* fail */
我相信作者故意写了->.
since->
并且.
也包括在内,但是什么是->.
,或者为什么它在这里?