Я использую декларацию 'using' в C++ для добавления std :: string и std :: vector в локальное пространство имен (чтобы сохранить ввод ненужных 'std ::' s).Какова область применения «использования» в C++?
using std::string;
using std::vector;
class Foo { /*...*/ };
Какова область применения этой декларации? Если я сделаю это в заголовке, будет ли он вводить эти объявления «использования» в каждый файл cpp, который включает заголовок?
На всякий случай неясно, из других ответов здесь: - ** Не помещайте декларацию `using` (или` use` директиву) в область файла в include-файле/заголовке! ** Это будет вызывают головные боли для пользователей заголовка. – 2008-10-21 19:07:07
На самом деле, не помещайте декларацию `use` (директива fortiori *) в заголовок ** вообще **, * даже внутри пространства имен! * См. [Область использования объявления в пространстве имен] (http://stackoverflow.com/q/6175705/2025416). – 2016-05-22 15:07:04