为什么`std :: is_member_function_pointer`中的&符号?

时间:2014-08-08 21:41:59

标签: c++ c++11 methods member typetraits

cppreference上使用std::is_member_function_pointer的示例使用了&符号,我在理解语法方面遇到了一些困难。

#include <type_traits>

class A {
    void member_function() { }
};

int main()
{
    // fails at compile time if A does not contain member_function as a function.
    static_assert(std::is_member_function_pointer<decltype(&A::member_function)>::value,
                  "Class does not contain member."); 
}

&A::member_function的含义是什么?A::member_function有意义(如果是,有什么区别)?

此外,std::is_member_function_pointer是否可以使用函数模板?

1 个答案:

答案 0 :(得分:3)

此表达式

&A::member_function

字面意思是成员函数指针。 &amp;用于获取指向成员函数的指针。