We recommend using Visual Studio 2017

Compiler Warning (level 4) C4516


The latest version of this topic can be found at Compiler Warning (level 4) C4516.

class::symbol' : access-declarations are deprecated; member using-declarations provide a better alternative

The ANSI C++ committee has declared access declarations (changing the access of a member in a derived class without the using keyword) to be outdated. Access declarations may not be supported by future versions of C++.

The following sample generates C4516:

// C4516.cpp  
// compile with: /W4  
class A  
   void x(char);  
class B : protected A  
   A::x;  // C4516 on access-declaration  
   // use the following line instead  
   // using A::x; // using-declaration, ok  
int main()