Compiler Error C2663
Visual Studio 2015
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at 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
constfrom the object declaration.Add
constto 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
}
Show: