Compiler Warning (level 4) C4516

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

Here deprecated means the ANSI C++ committee has declared access-declarations (changing the access of a member in a derived class without the using keyword, see the example below) as outdated. You should use using-declarations because access-declarations will be removed by the committee in future versions of C++.

The following code shows class B derived from base class A.

class A {
public:
   x(char);
};

class B : protected A {
public:
   A::x;  // access-declaration, warning C4516
};

To use using-declarations, rewrite class B with the using keyword:

class B : protected A {
public:
   using A::x; // using-declaration, ok
};