Compiler Error C2638


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler Error C2638.

identifier' : __based modifier illegal on pointer to member

The __basedmodifier cannot be used for pointers to members.

The following sample generates C2638:

// C2638.cpp  
void *a;  
class C {  
   int i;  
   int j;  
   int func();  
int __based (a) C::* cpi = &C::i;  // C2638  
int (__based (a) C::* cpf)() = &C::func; // c2638