«Использует пространство имен std;» стандартная функция C ++? - PullRequest
2 голосов
/ 23 февраля 2010

Является ли using namespace std; стандартной функцией C ++?

Ответы [ 3 ]

15 голосов
/ 23 февраля 2010

Нет. Это то, что называется using directive. Я изложил в §7.3.4 в стандарте:

Директива using указывает, что имена в номинированном пространстве имен могут использоваться в области, в которой директива using появляется после директивы using. При поиске безоговорочного имени (3.4.1) имена появляются так, как если бы они были объявлены в ближайшем окружающем пространстве имен, которое содержит как директиву using, так и номинированное пространство имен.

По сути, он берет все в указанном вами пространстве имен и перемещается в пространство имен, в котором использовалась директива.

0 голосов
/ 23 февраля 2010

Никакая функция не является частью языка C ++; это то, что вы пишете или что-то, что уже написано как библиотека и доступно вам (например, Стандартная библиотека C ++). Такие библиотеки имеют функции и переменные, помещенные в сегрегации, называемые пространства имен . Чтобы вызвать функцию в пространстве имен, вы используете синтаксис namespace::function_name() синтаксис.

например. std::cout << "Hi!";

Хотя вы всегда вызываете функцию с именем функции, за которым следует скобка, вы передаете аргументы этой функции, если таковые имеются. Как function_name(args);. Итак, к тому, что вы спросили: Нет, это не функция.

using namespace std - это директива (вы можете рассматривать ее как объявление компилятору, говорящее, что все, что находится внутри пространства имен std , может использоваться без каких-либо определителей с этого момента до конец этого модуля компиляции (.cpp + заголовки, связанные внутри), т.е.

std::cout << "Hello!"; может использоваться как cout << "Hello!"; с этого момента.

0 голосов
/ 23 февраля 2010

Это не функция.

в следующем

 using namespace std; 

ключевое слово using используется в качестве директивы для представления всего пространства имен (std в данном случае).

Примечание : Всегда предпочитайте using декларацию над using директивой

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