能否请您解释一下与例如C++函子解释
语句1
下面的语句普通功能有不同的类型,只有当他们的签名。但是,当功能对象的签名相同时,它们可以有不同的类型 。实际上,由函数对象定义的每个函数行为都有其自己的类型。这是一个显著 改进使用模板泛型编程,因为你可以通过 功能行为作为模板参数
能否请您解释一下与例如C++函子解释
语句1
下面的语句普通功能有不同的类型,只有当他们的签名。但是,当功能对象的签名相同时,它们可以有不同的类型 。实际上,由函数对象定义的每个函数行为都有其自己的类型。这是一个显著 改进使用模板泛型编程,因为你可以通过 功能行为作为模板参数
普通功能有不同的类型,只有当他们的签名。
这意味着这些功能都具有相同的类型int(int)
:
int f1(int);
int f2(int);
,而这有不同的类型void(int)
void f3(int);
然而,函数对象可以在具有不同类型的签名是相同的。
含义,这两个类是不同类型的(如不同类始终是):
class c1 {int operator()(int);};
class c2 {int operator()(int);};
实际上,通过一个函数对象中定义的每个功能行为有它自己的类型。
我不知道作者的意思是“功能行为”,但我认为这只是重申两个类的类型是分开的类型。
这是使用模板的泛型编程一个显著的改善,因为你可以通过功能行为作为模板参数
也就是说,你可以指定一个函数类作为模板类型参数:
temp<c1> thing_using_c1;
temp<c2> thing_using_c2;
但是你不能指定一个普通的函数,你需要以某种方式提供函数:
temp<int(int)> thing_using_f1(f1);
temp<int(int)> thing_using_f2(f2);
不同的类可以具有不同的功能,具有相同的名称及其参数。但一般非类功能不可能
你懂什么?你做了什么研究?声明来自哪里,其他声明在哪里? – Useless
需要更多上下文。 –