在编译基于IOKit的内核扩展时,c++编译器无法识别关键字decltype。
int f = 123;
int (*f_ptr)() = 0;
f_ptr = (decltype(f_ptr)) f;编译器在上面的代码上失败是因为原因:Use of undeclared identifier 'decltype'。另一方面,auto关键字的工作原理是预期的。
但是,如果我在C++用户模式应用程序中编译完全相同的代码,它就能正常工作。
知道为什么吗?
发布于 2018-02-21 13:47:39
decltype需要C++11支持。查看您的项目Build Settings,并确保C++语言方言至少是GNU++11/C++11或更高版本(搜索-std=选项)
另一方面,auto是在C++11[6]中重新使用的旧存储持续时间说明符关键字。
https://stackoverflow.com/questions/48906191
复制相似问题