Namelookup mit unqualifiziertem Namen: C ++ 0x Entwurf N3290
-
28-10-2019 - |
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?
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