我正在学习一些基本的cpp,我发现我们可以将lambda函数传递给一个接受std::函数的函数,如下所示:
int someFunction(std::function<int(int, int)> sum) {
return sum(1,3);
}
我很困惑std::函数是如何将模板类型作为“int(int,int)”的,通常我只看到类接受像someClass〈int,int〉这样的类型。
我们如何定义采用“int(int,int)"这样的模板类型的类?
我试着声明类
template<typename A(typename B)> // --> this just gives an syntax error.
class SomeClass {};
2条答案
按热度按时间eoigrqb61#
首先,您的示例不应编译。
更多示例
我们如何定义采用“int(int,int)"这样的模板类型的类?
ttcibm8c2#
感谢@Raildex的评论,我回答了我自己的问题。基本上,问题中的int(int,int)类型将引用一个函数指针,该指针接受2个int并返回一个int。
因此,示例类可以是: