C++ 将uu桥转换与静态u转换结合使用的语法是什么?

C++ 将uu桥转换与静态u转换结合使用的语法是什么?,c++,casting,automatic-ref-counting,llvm,objective-c++,C++,Casting,Automatic Ref Counting,Llvm,Objective C++,我在下面尝试过,但编译器不理解: //Foo.mm id anObjOfTypeFoo; Foo* obj = (Foo*) anObjOfTypeFoo; //ERROR: must use __bridge Foo* obj = (__bridge Foo*) anObjOfTypeFoo; //OKAY Foo* obj = static_cast<__bridge Foo*> (anObjOfTypeFoo); //ERROR Foo* obj = __bridge (

我在下面尝试过,但编译器不理解:

//Foo.mm
id anObjOfTypeFoo;
Foo* obj = (Foo*) anObjOfTypeFoo; //ERROR: must use __bridge

Foo* obj = (__bridge Foo*) anObjOfTypeFoo; //OKAY

Foo* obj = static_cast<__bridge Foo*> (anObjOfTypeFoo); //ERROR

Foo* obj = __bridge (static_cast<Foo*> (anObjOfTypeFoo)); //ERROR
//Foo.mm
id anObjOfTypeFoo;
Foo*obj=(Foo*)anObjOfTypeFoo//错误:必须使用_桥
Foo*obj=(uu桥Foo*)anObjOfTypeFoo//可以
Foo*obj=静态_cast(anObjOfTypeFoo)//错误
Foo*obj=uuuu桥(静态铸造(anObjOfTypeFoo))//错误

<> PojuleC代码是由C++编译器有效编译的.mm编译单元,它不应该存在桥接C++的问题。有人能解释一下吗?

< P>太差的静态模型来自C++,它不理解ObjultC类。您甚至不能从<代码> NScord转换为<代码> NSututable Studio

。为什么你需要一个静态的转换?我的核心逻辑是用C++编写的,我只是在上面为iOS客户端放上一个UI代码。由于许多原因,静态_型铸造比普通C型铸造更受欢迎,突出的是其“安全性”。[如果我错了请纠正我,但我不认为你可以用简单的静态映射将核心基础对象静态地投射到一个目标C对象上。过去是这样的(好吧,它曾经是一个普通的C风格的演员),但是新的ARC政策加强了桥牌。实际上,桥牌主要是由ARC驱动的。据我所知,我在这里详细写了()关于_桥修饰符的内容,_桥几乎就像一个普通的旧演员。所以把它们混在一起是没有意义的//错误:必须使用_桥,这是不可能的。除非
Foo
不是Objective-C类。如果
Foo
是Objective-C类,则无论是否使用强制转换,都不会出现错误。