namelookup с неквалифицированным именем: C ++ 0x черновик n3290 - PullRequest
5 голосов
/ 15 июня 2011

Точка из ISO C ++ Draft n3290: 3.4.0 2-ая точка

Имя «ищется в контексте выражения» рассматривается как безусловное имя в области, гдевыражение найдено.

Кто-нибудь, пожалуйста, объясните это утверждение на примере?

1 Ответ

6 голосов
/ 15 июня 2011

Это говорит о том, что в области, содержащей выражение, будет произведен поиск по имени.т.е.

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

если у вас есть этот код, имя do_something будет искать в области foobar, bar, foo и в глобальной области (а не в других пространствах имен,структуры или функциональные области)

...