Compiler Error C2989
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at Compiler Error C2989.
class' : class type has already been declared as a non-class type
The class generic or template redefines a non-template or non-generic class. Check header files for conflicts.
If you are using class template partial specializations, see Knowledge Base article Q240866.
The following sample generates C2989:
// C2989.cpp
// compile with: /c
class C{};
template <class T>
class C{}; // C2989
class C2{};
C2989 can also occur when using generics:
// C2989b.cpp // compile with: /clr /c ref class GC1; generic <typename T> ref class GC1; // C2989 template <typename T> ref class GC2; generic <typename T> ref class GC2; // C2989 generic <typename T> ref class GCb; template <typename T> ref class GC2; generic <typename T> ref class GCc;
Show: