Erro do Compilador C2663

"function": as sobrecargas numéricas não têm conversões legais para o ponteiro "this"

O compilador não conseguiu converter this em nenhuma das versões sobrecarregadas da função membro.

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

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

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

A amostra a seguir gera o erro 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
}