次の方法で共有


コンパイラ エラー C3227

'parameter': ジェネリック型を割り当てるために 'keyword' を使用することはできません

型をインスタンス化するには、適切なコンストラクターが必要です。 しかし、適切なコンストラクターをコンパイラが確実に用意することはできません。

このエラーは、ジェネリックではなくテンプレートを使用することで解決できます。または、いずれかのメソッドを使用して、型のインスタンスを作成してください。

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

// C3227.cpp
// compile with: /clr /c
generic<class T> interface class ICreate {
   static T Create();
};

generic <class T>
where T : ICreate<T>
ref class C {
   void f() {
      T t = new T;   // C3227

      // OK
      T t2 = ICreate<T>::Create();
      T t3 = safe_cast<T>( System::Activator::CreateInstance(T::typeid) );
   }
};