Сабж, т.е. нельзя использовать класс как атрибут при наличии только объявления (declaration, forward declaration), требуется полное определение (definition).
Вот мой баг на connect.microsoft.com —
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=432430
, вот кусок кода как пример (оттуда же):
using namespace System;
namespace CppCLItest {
ref class B;
ref class MyAttribute; // Не помогает!
public ref class Class1
{
[My()] // Ошибка компиляции!
int a;
B^ b; // А этот тип подхватился!
};
public ref class MyAttribute : public System::Attribute{};
public ref class B{};
}
А где мне это понадобилось — нужно класс контрола сделать первым в файле, а контрол юзает свой собственный атрибут, хидер с которым собственно и инклюдится перед классом контрола и мешает дизайнеру.
... << RSDN@Home 1.2.0 alpha 4 rev. 1165>>