AP.*_*AP. 1 c++ iphone templates objective-c
我正在将一个项目移植到iPhone系统,我遇到了以下问题:我有一个包含c ++模板的标题如果我将它重命名为.mm,它不会编译(因为它应该是一个标题)并且如果我保留它.h,它被解释为一个客观的C头
您有解决此问题的解决方法吗?
提前致谢!
问候,
编辑:添加错误消息和代码
template <typename T>
class CML_Matrix
{
public:
//rest of teh template
};
Run Code Online (Sandbox Code Playgroud)
错误消息是"无法找到typename的协议声明"
包裹它
#ifdef __cplusplus
//templates here
#endif
Run Code Online (Sandbox Code Playgroud)
这样,当文件包含在C或Objective C(.m)源中时,将以静默方式忽略模板.
你也可以包含一些Objective C-only构造
#ifdef __OBJC__
Run Code Online (Sandbox Code Playgroud)
编辑:您也可以将源(不是标题!)重命名为.mm.由于它是一个混合的ObjC/C++项目,你可能必须在某个时候实例化/调用C++类; 为此,无论如何你都需要Objective C++.但是从来没有试过这个.
| 归档时间: |
|
| 查看次数: |
1512 次 |
| 最近记录: |