次の方法で共有


コンパイラ エラー C2680

'type': 名前の無効なターゲット型です

キャスト演算子が、ポインターまたは参照ではない型に変換しようとしました。 dynamic_cast 演算子は、ポインターまたは参照にのみ使用できます。

次の例では C2680 が生成されます。

// C2680.cpp
// compile with: /c
class A { virtual void f(); };
class B : public A {};

void g(B b) {
   A a;
   a = dynamic_cast<A>(b);   // C2680  target not a reference type
   a = dynamic_cast<A&>(b);   // OK
}

C2680 は、ターゲットが定義されていない場合にも発生する可能性があります。

// C2680b.cpp
// compile with: /clr /c
// C2680 expected
using namespace System::Collections;

// Delete the following line to resolve.
ref class A;   // not defined

// Uncomment the following line to resolve.
// ref class A{};

public ref class B : ArrayList {
   property A^ C[int] {
      A^ get(int index) {
         return dynamic_cast<A^>(this->default::get(index));
      }
      void set(int index, A^ value) {
         this->default::set(index, value);
      }
   }
};