But*_*aca 2 c++ namespaces class objective-c forward-declaration
是否可以在 Objective C 头文件中对命名空间内的 C++ 类进行前向声明?
在目标 C 中转发声明的 C++ 类:
namespace name
{
    class Clazz
    {
    };
}
我知道如果 C++ 类不在命名空间中,我可以。取自http://www.zedkep.com/blog/index.php?/archives/247-Forward-declaring-C++-classes-in-Objective-C.html
有什么想法吗?
谢谢你们!
您只需像往常一样声明它,并#ifdef在标头也包含在 C 和/或 ObjC 翻译中时将其包装在 C++检查中:
#ifdef __cplusplus
namespace name {
class Clazz;
} // << name
#endif
由于显而易见的原因,您不能name::Clazz在 C 或 ObjC 翻译中使用,所以这很完美。您要么需要 C++ 翻译中的前向声明,要么不需要对 C 或 ObjC 可见。