Я хочу знать, какие слова не следует использовать в качестве переменных после включения директивы using. Я не могу найти список пространства имен 🙁 Помощь очень ценится 🙂
Наиболее полный список всех имен в std
пространство имен — это стандарт C ++. Текущая версия более 1300 страниц и, вероятно, содержит тысячи уникальных идентификаторов в std
, Помимо этого, некоторые компиляторы могут также включать некоторые специфичные для платформы идентификаторы в std
и они в значительной степени недокументированы — поэтому вам придется проверять исходный код рассматриваемого компилятора (если это возможно) и перепроверять его снова каждый раз, когда они делают исправление.
Кажется пугающим? Хорошо, так что, надеюсь, я привлек ваше внимание.
Не делай using namespace std
в вашем коде. особенно не use namespace std
в заголовочных файлах. Поместите ваши идентификаторы в их своя Пространства имен. Теперь вам не нужно заботиться о том, что находится в чьих пространствах имен. Называй вещи как хочешь.
Я за то, что я ленивый, но будь сообразителен с этим. Если вы хотите получить конкретные имена из std
так что вам не нужно вводить std::
снова и снова, просто потяните за эти вещи:
using std::string;
…и ничего вам не нужно. Но только сделайте это в ваших файлах CPP, никогда в заголовке.
Лучшая идея: не использовать using namespace std;
в вашем коде. Я никогда не слышал о способе получить список всего в пространстве имен std ::.
В дополнение к информации, представленной в ответе Джона Диблинга, я хотел бы отметить, что вам не обязательно избегать имен в пространстве имен std, даже если вы пишете using namespace std;
, Вы можете устранить неясности в присутствии using
директивы по уточняющим именам. Вы даже можете квалифицировать имена в «глобальных» пространствах имен, используя верхний уровень ::
,
#include <iostream>
using namespace std;
int cout;
int main() {
::cout = 10;
}
Причина, по которой я хотел указать на это, состоит в том, что я знаю, что многие программисты на С ++, даже после нескольких лет его использования, не знают, как квалифицировать имена в глобальном пространстве имен.