编译器错误 C3848

具有类型“type”的表达式会丢失一些 const-volatile 限定符以调用“function”

具有指定 const-volatile 类型的变量只能调用具有相同或更大 const-volatile 限定定义的成员函数。

以下示例生成 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
}