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
}