**編集:これはllvmでのみ発生します。 gccはこれをうまくサポートしています。objective-C++:objective-cクラスを返し、共変リターンを使うメソッドでC++クラスを定義することは可能ですか?
以下を考慮してください。
Objective-CのクラスAとB
Bは、我々は、C++のように見えるhiearchyたいA.
のサブクラスである:、あなたがこれを行う場合は、しかし、
class X {
//...
public:
virtual A* getFoo();
};
class Y : public X {
//...
public:
B* getFoo();
};
を
error: virtual function 'getFoo' has a different return type ('Y *') than the function it overrides (which has return type 'X *')
私は思ったんだけど:あなたはObjective-Cのタイプは、C++コンパイラを混乱させるとして、エラーが発生します誰かがこれに対する回避策を持っていれば? (明らかに、長期的には、Objective-cクラスから離れることになりますが、それは今日ではありません)。
P.S. Thisは私が見つけることができる最も類似した質問のようですが、私はそれが別の問題だと確信しています。
ああ、これはllvmでのみ発生します:/私は質問を更新しましたが、本当の答えはここでllvmに対するバグを報告することです:http://llvm.org/bugs/show_bug.cgi?id= 10309 –
これが修正されるまでg ++を元に戻せない場合は、回避策としてIDを返すことができると思います。 –