Compiler Error C2663
'function' : number overloads have no legal conversions for 'this' pointer
The compiler could not convert this
to any of the overloaded versions of the member function.
This error can be caused by invoking a non-const
member function on a const
object. Possible resolutions:
Remove the
const
from the object declaration.Add
const
to one of the member function overloads.
The following sample generates 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
}