我正在阅读关于元组的boost文档,并遇到了以下有效的元组实例化(A,B和C是一些用户定义的类):
tuple<A, int(*)(char, int), B(A::*)(C&), C>
我无法理解第二和第三参数的类型。 int(*)(char, int)
和B(A::*)(C&)
类型的具体内容是什么?
答案 0 :(得分:7)
int(*)(char, int)
指向函数的指针,该函数接受char
和int
作为参数并返回int
。
B(A::*)(C&)
指向A
对象上的成员函数的指针,返回B
并接受对C
的引用作为参数。
答案 1 :(得分:2)
int(*)(char, int)
是一个指向函数的指针,该函数返回int
并以char
和int
作为参数。
答案 2 :(得分:2)
int(*)(char, int)
指向功能(char, int)
并返回int
的指针。
B(A::*)(C&)
指向A
的成员函数的指针,C&
返回B
。
答案 3 :(得分:0)
B(A::*)(C&)
是一个指向成员函数的指针(A
的成员),它接受C&
并返回B
示例:
class B{
public:
/*empty class*/
};
class A{
public:
B DoSomething( C& input){
return B;
}
}
int main(){
auto G = &A::DoSomething;
}
G
的类型为B(A::*)(C&)
答案 4 :(得分:0)
B(A::*)(C&)
是指向A
成员函数的指针,它使用C
引用参数并返回B
个对象。
Luchian已经回答int(*)(char, int)
。