¿C ++ genera una advertencia cuando un miembro de la clase hace sombra a un miembro de la clase de su padre?

¿Hay una manera de generar una advertencia cuando un nombre de variable de miembro de clase derivado oculte una de sus clases padre, por ejemplo?

class Mother 
{
public:
  Mother() : i(0) {}
  virtual ~Mother() {}
protected:
  int i;
};

class Child : public Mother
{
public:
  Child() : Mother(), i(0) {}
  virtual ~Child() {}
protected:
  int i; /* NOK Expecting warning : declaration of 'int Child::i' shadows 'int Mother::i' */
};

El código anterior no genera ninguna advertencia cuando se compila con-Wshadow con g ++.

Respuestas a la pregunta(2)

Su respuesta a la pregunta