Erro do compilador C2663

' function ': sobrecargas de número não têm conversões legais para ponteiro ' this '

O compilador não pôde converter this para nenhuma das versões sobrecarregadas da função membro.

Esse erro pode ser causado pela invocação de uma função não const membro em um const objeto. Possíveis resoluções:

  1. Remova o const da declaração de objeto.

  2. Adicione const a uma das sobrecargas de função de membro.

O exemplo a seguir gera C2663:

// C2663.cpp
struct C {
   void f() volatile {}
   void f() {}
};

struct D {
   void f() volatile;
   void f() const {}
};

const C *pcc;
const D *pcd;

int main() {
   pcc->f();    // C2663
   pcd->f();    // OK
}