当我的朋友在阅读这个hpp文件时,有一部分代码他无法理解: 像A(B, C),int(int, int)或者在这个例子中的T(Type::*)是什么意思?我已经看到了std::function<int(int, int)>之类的用法,但仍然不知道int(int, int)单独表示什么。 Type::*是什么意思?一个星号标记怎么直接跟在::后面呢?
::* 用于声明一个指向类成员的指针。因此,在这种情况下,它指向模板类型 Type 的一个成员。 std::function<int(int, int)> 是一个 std::function,用于保存一个接受参数为 (int, int) 的方法,并返回一个整数结果。(这是 C/C++ 类型声明语法中著名的复杂示例之一)。
Type
是一个命名空间吗? - Dominiqueint(int,int)
单独表示什么” -int(int,int)
是int f(int,int)
的类型。您应该弄清楚这个声明的含义(f
是一个接受两个int
参数并返回一个int
的函数)。 - axiacint(int, int)
实际上是一种函数类型吗?我从来没有想过这一点,因为我见过类似于int (*func)(int, int)
的东西,也就是函数指针类型,但不是函数类型本身。 - CXuesong