Compiler Error C3848

 

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 C3848.

expression having type 'type' would lose some const-volatile qualifiers in order to call 'function'

A variable with a specified const-volatile type can only call member functions defined with same or greater const-volatile qualifications.

The following samples generate C3848:

// C3848.cpp  
void glbFunc1()  
{  
}  
  
typedef void (* pFunc1)();  
  
struct S3  
{  
   operator pFunc1() // const  
   {  
      return &glbFunc1;  
   }  
};  
  
int main()  
{  
   const S3 s3;  
   s3();   // C3848, uncomment const qualifier  
}  

Show: