【发布时间】:2016-10-20 06:52:32
【问题描述】:
引用 8.3.3 的标准 (2003) 版本(我认为最近的其他人也这么说),粗体强调是我的:
指向成员的指针不应指向类 (9.4) 的静态成员、具有引用类型的成员或 “简历无效。” [注:另见 5.3 和 5.5。 “指向成员的指针”类型不同于“指针”类型, 也就是说,指向成员的指针仅由指向成员声明符语法的指针声明,而不是由 指针声明符语法。 C++ 中没有“引用成员”类型。 ]
但我看到很多
boost::bind(&SomeClass::SomeMemberFunction, this, _1)
还有
std::bind(&SomeClass::SomeMemberFunction, this, std::placeholders::_1)
etc 像一个魅力,涉及 &SomeClass::SomeMemberFunction's 这似乎是对成员函数的引用。
标准是否只是简单地说例如
int (SomeClass::&RefOnSomeMemberFunction) (int) = SomeClass::SomeMemberFunction
在该语言中不是有效的断言,还是还有更多?
【问题讨论】:
-
&是运算符的地址。 -
那么标准所说的只是,例如,
int (SomeClass::&RefOnSomeMemberFunction) (int) = SomeClass::SomeMemberFunction不是语言中的有效断言? -
据我所知,是的。
-
好的,感谢您的澄清
标签: c++ reference standards member-function-pointers member-functions