Поделиться через


Ошибка компилятора C3848

выражение с типом "type" потеряет некоторые константные квалификаторы, чтобы вызвать "function"

Переменная с указанным константным типом может вызывать только функции-члены, определенные с той же или большей константной квалификацией.

Следующие примеры создают 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
}