We recommend using Visual Studio 2017

Compiler Error C3374


The latest version of this topic can be found at Compiler Error C3374.

can't take address of 'function' unless creating delegate instance

The address of a function was taken in a context other than the creation of a delegate instance.

The following sample generates C3374:

// C3374.cpp  
// compile with: /clr  
public delegate void MyDel(int i);  
ref class A {  
   void func1(int i) {  
      System::Console::WriteLine("in func1 {0}", i);  
int main() {  
   &A::func1;   // C3374  
   // OK  
   A ^ a = gcnew A;  
   MyDel ^ StaticDelInst = gcnew MyDel(a, &A::func1);  

How to: Define and Use Delegates (C++/CLI)