Ошибка компилятора C2217
Для атрибута1 требуется атрибут2.
Для первого атрибута функции требуется второй атрибут.
Пример
C2217 может возникать, если вы пытаетесь привязать делегат к функции CLR, которая принимает переменное число аргументов. Если функция также имеет перегрузку массива парам, используйте ее. В следующем примере создается C2217.
// C2217.cpp
// compile with: /clr
using namespace System;
delegate void MyDel(String^, Object^, Object^, ...); // C2217
delegate void MyDel2(String ^, array<Object ^> ^); // OK
int main() {
MyDel2^ wl = gcnew MyDel2(Console::WriteLine);
array<Object ^ > ^ x = gcnew array<Object ^>(2);
x[0] = safe_cast<Object^>(0);
x[1] = safe_cast<Object^>(1);
// wl("{0}, {1}", 0, 1);
wl("{0}, {1}", x);
}