使用Objective-C++,我可以编写一个C++ IsObjectiveCClass<T>模板元函数,IsObjectiveCClass<T>::value当且仅当T是Objective-C类时才是真的吗?
从语言的C/C++子集的角度来看究竟是什么是ObjC类?在C/C++上下文中使用时,MyClass*指针似乎表现得像普通的C指针; 这是否意味着MyClass也是C类型?
在Objective-C中我有有效的代码:
TestTwo.h:
@interface TestTwo : NSObject
-(void)test;
@end
Run Code Online (Sandbox Code Playgroud)
TestTwo.m:
@implementation TestTwo
-(void)test
{
void (^d_block)(void) =
^{
int n;
};
}
@end
Run Code Online (Sandbox Code Playgroud)
我真正想要的是一个Objective-C++类,它定义了一个类似的方法test.这是简化,但说明了意图.所以,在Objective-C++中,我有:
Test.h:
class Test
{
public:
void TestIt();
};
Run Code Online (Sandbox Code Playgroud)
Test.mm:
#include "Test.h"
void Test::TestIt()
{
void (^d_block)(void) =
^{
int n;
};
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:'int Test :: n'不是'class Test'的静态成员.
如果我删除int n;没有错误.如何n在此上下文中的块中定义?