函数指针类型的c ++模板调用

乌多·克莱因

如果我有类似的类型声明

typedef void (*command)();

template <command c>
void execute() {
   c();
}

void task() { /* some piece of code */ }

然后

execute<task>();

将编译并表现出预期的效果。但是,如果我将模板定义为

template <command c>
void execute() {
   command();
}

它仍然可以编译。我是无意中这样做的。现在,我对第二版将要做什么感到困惑。

6502

在C ++中

type_name()

是创建默认初始化实例的实例的表达式type_name

对于本机类型,存在隐式定义的默认构造函数,因此例如

int();

是有效的C ++语句(只需创建一个anint并将其丢弃)。

g++ 带有完整警告的警告会发出诊断消息,因为它是可疑的(可能是意外的)操作,但是代码是有效的,甚至可能有依赖于此的程序(如果类型是用户定义的类型,并且实例的构造函数具有边效果)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

功能指针类型的c ++模板调用

来自分类Dev

函数调用中的指针类型不兼容-C

来自分类Dev

用于调用函数的C ++模板

来自分类Dev

从C文件调用模板函数

来自分类Dev

从模板多次调用的函数

来自分类Dev

模板函数未调用

来自分类Dev

从模板调用组件函数

来自分类Dev

调用模板成员函数

来自分类Dev

使用函数类型与函数指针作为C ++模板函数参数的区别?

来自分类Dev

如何根据C ++中的模板类型调用函数?

来自分类Dev

c ++模板为特定类型的类调用特定的构造函数

来自分类Dev

从C#调用C dll中的函数,该函数将某种类型的指针返回到函数指针

来自分类Dev

调用派生类型的模板化函数

来自分类Dev

模板参数类的函数调用的返回类型

来自分类Dev

检查模板中nullptr的函数指针是否有任何可调用的类型

来自分类Dev

c ++:带模板的函数指针

来自分类Dev

模板中的C ++函数指针

来自分类Dev

从模板函数调用静态模板方法

来自分类Dev

模板模板类,如果存在则调用函数

来自分类Dev

类型转换指针构造函数调用

来自分类Dev

类型转换指针构造函数调用

来自分类Dev

从Javascript调用C ++函数指针

来自分类Dev

调用成员指针函数C ++

来自分类Dev

调用成员指针函数C ++

来自分类Dev

C:函数调用后的指针

来自分类Dev

模板类的模板函数指针-C ++

来自分类Dev

模板函数调用歧义错误

来自分类Dev

从Twig模板调用PHP函数

来自分类Dev

无法调用的模板构造函数?