什么是C ++运算符 - >。 (升点操作员)在boost文档中找到了吗?

时间:2013-09-20 08:15:06

标签: c++ boost operator-keyword

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

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

3 个答案:

答案 0 :(得分:7)

这似乎是一个错字。

在C ++草案3690中,没有提及运算符->.

可能是->*

  

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

     

指向成员的操作符->*.*从左到右分组。

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

答案 1 :(得分:3)

从C ++ 11,2.13:“运算符和标点符号”中可以看到,没有“->.”这样的运算符。

答案 2 :(得分:0)

没有像“&gt;”这样的运营商。 http://msdn.microsoft.com/en-us/library/x04xhy0h.aspx