#include <thread>voID func(int);int* ptr;voID start(){ std::thread t = std::thread(func,ptr);}
当我尝试使用gcc 5.3.0编译它时,它打印了以下类型的错误消息:
class std::result_of<voID (*(int*))(int)>
现在我想知道如何将作为参数传递的类型解释为类std :: result_of<>.它类似于指向函数的指针(在本例中为voID(*)(int)),但在括号中的星号之后使用extra(int *).如何解释这种类型?
@R_502_6120@voID (*(int*))(int)
方法是:
一个函数,它接受int *类型的单个参数作为返回
指向函数的指针,该函数接受int类型的单个参数并返回
空虚
它类似于C/C++标准库函数signal:
voID (*signal(int sig,voID (*func)(int)))(int);
它返回一个指向前一个信号处理程序的指针(与func参数的类型相同).
编辑:作为Pete Becker pointed out in comment,当与std :: result_of一起使用时,它是means something different,但表达式本身的类型仍然是我描述的类型,std :: result_of只是以不同的方式解释它.
总结以上是内存溢出为你收集整理的如何解释这个C类型?全部内容,希望文章能够帮你解决如何解释这个C类型?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)