Compiler Warning (level 3) C4580

 

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 Warning (level 3) C4580.

attribute] is deprecated; instead specify System::Attribute or Platform::Metadata as a base class

attribute is no longer the preferred syntax for creating user-defined attributes. For more information, see User-Defined Attributes. For CLR code, derive attributes from System::Attribute. For Windows Runtime code, derive attributes from Platform::Metadata.

The following sample generates C3454 and shows how to fix it.

// C4580.cpp  
// compile with: /W3 /c /clr  
[attribute]   // C4580  
public ref class Attr {  
public:  
   int m_t;  
};  
  
public ref class Attr2 : System::Attribute {  
public:  
   int m_t;  
};  

Show: