什么是C++运算符 ->。(箭头点运算符)在提升文档中找到?

What is the C++ operator ->. (arrow dot operator) found in boost documentation?

本文关键字:运算符 文档 点运算 C++ gt 什么      更新时间:2023-10-16

我正在阅读提升文档,并在 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 */

我相信作者故意写->.因为->.也包括在内,但什么是->.,或者为什么在这里?

IT似乎是一个错字。

在C++草案 3690 中,没有提到运营商->.

可能是->*

5.5 指针到成员运算符 [expr.mptr.oper]

指向成员的指针运算符->*.*从左到右分组。

在 http://www.boost.org/doc/libs/1_54_0/doc/html/lambda/le_in_details.html,他们有一些关于这个运算符的例子。

正如您在 C++11, 2.13 中看到的那样:"运算符和标点符号",没有"->."这样的运算符。

没有像"->"这样的运算符。http://msdn.microsoft.com/en-us/library/x04xhy0h.aspx