Поделиться через


Ошибка компилятора C3095

"атрибут": повтор атрибута невозможен

Некоторые атрибуты объявляются таким образом, что множественное применение атрибута к целевому объекту не допускается.

Дополнительные сведения см. в разделе User-Defined Attributes.

Пример

Следующий пример приводит к возникновению ошибки C3095:

// C3095.cpp
// compile with: /clr /c
using namespace System;

[AttributeUsage(AttributeTargets::All, AllowMultiple=false)]
public ref class Attr : public Attribute {
public:
   Attr(int t) : m_t(t) {}
   const int m_t;
};

[AttributeUsage(AttributeTargets::All, AllowMultiple=true)]
public ref class Attr2 : public Attribute {
public:
   Attr2(int t) : m_t(t) {}
   const int m_t;
};

[Attr(10)]   // C3095
[Attr(11)]
ref class A {};

[Attr2(10)]   // OK
[Attr2(11)]
ref class B {};