Frage

Ein Punkt aus dem ISO C ++ Draft N3290: 3.4.0 2. Punkt

Ein Name „im Kontext eines Ausdrucks nachgeschlagen“ wird als uneingeschränkter Name im Bereich, in dem der Ausdruck gefunden wird, als uneingeschränkter Name angesehen.

Würde jemand diese Aussage bitte mit einem Beispiel erklären?

War es hilfreich?

Lösung

Es heißt, dass der Umfang, der den Ausdruck enthält, nach dem Namen gesucht wird. dh

namespace foo { 
  struct bar {
    void foobar() {
      do_something();
    }
  };
}

Wenn Sie diesen Code haben do_something wird im Umfang von durchsucht foobar, bar, foo und im globalen Bereich (und nicht in anderen Namespaces, Strukturen oder Funktionsbereichen)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top