extra qualification ... on member ...

Das Problem

Folgende Fehlermeldung spuckte mein GCC 4.1 heute aus:

<file.h>: error: extra qualification '<Namespace::Class>::' on member '<Memberfunction>'

Der Fehler

Der Fehler ist vergleichsweise einfach:
Die Deklaration der Memberfunction innerhalb der Class enthält einen Namensraum. Dies kann zum Beispiel geschehen, wenn man die Funktionskopf nach der Definition im .cpp-File in die Klassendeklaration kopiert wird und man dabei eben vergisst den Namensraum der Klasse zu entfernen. Das haben ältere GCC-Versionen geschluckt, aber nun wird er - zu Recht - pingelig.

Also folgendes:

class Klasse
{
  void Klasse::Funktion( void );
};

einfach wie folgt korrigieren:

class Klasse
{
  void Funktion( void );
};

Quelle