We recommend using Visual Studio 2017

Compiler Error C2254


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 Error C2254.

function' : pure specifier or abstract override specifier not allowed on friend function

A friend function is specified as pure virtual.

The following sample generates C2254:

// C2254.cpp  
// compile with: /c  
class A {  
   friend void func1() = 0;   // C2254, func1 is friend  
   void virtual func2() = 0;   // OK, pure virtual  
   friend void func3();   // OK, friend not virtual nor pure  
void func1() {};  
void func3() {};