Компиляция — Кто-нибудь знает, где я могу найти список пространства имен std :: ?? (для C ++ 98)

Я хочу знать, какие слова не следует использовать в качестве переменных после включения директивы using. Я не могу найти список пространства имен 🙁 Помощь очень ценится 🙂

-1

Решение

Наиболее полный список всех имен в std пространство имен — это стандарт C ++. Текущая версия более 1300 страниц и, вероятно, содержит тысячи уникальных идентификаторов в std, Помимо этого, некоторые компиляторы могут также включать некоторые специфичные для платформы идентификаторы в stdи они в значительной степени недокументированы — поэтому вам придется проверять исходный код рассматриваемого компилятора (если это возможно) и перепроверять его снова каждый раз, когда они делают исправление.

Кажется пугающим? Хорошо, так что, надеюсь, я привлек ваше внимание.

Не делай using namespace std в вашем коде. особенно не use namespace std в заголовочных файлах. Поместите ваши идентификаторы в их своя Пространства имен. Теперь вам не нужно заботиться о том, что находится в чьих пространствах имен. Называй вещи как хочешь.

Я за то, что я ленивый, но будь сообразителен с этим. Если вы хотите получить конкретные имена из std так что вам не нужно вводить std:: снова и снова, просто потяните за эти вещи:

using std::string;

…и ничего вам не нужно. Но только сделайте это в ваших файлах CPP, никогда в заголовке.

2

Другие решения

Лучшая идея: не использовать using namespace std; в вашем коде. Я никогда не слышал о способе получить список всего в пространстве имен std ::.

1

В дополнение к информации, представленной в ответе Джона Диблинга, я хотел бы отметить, что вам не обязательно избегать имен в пространстве имен std, даже если вы пишете using namespace std;, Вы можете устранить неясности в присутствии using директивы по уточняющим именам. Вы даже можете квалифицировать имена в «глобальных» пространствах имен, используя верхний уровень ::,

#include <iostream>
using namespace std;

int cout;

int main() {
::cout = 10;
}

Причина, по которой я хотел указать на это, состоит в том, что я знаю, что многие программисты на С ++, даже после нескольких лет его использования, не знают, как квалифицировать имена в глобальном пространстве имен.

0
По вопросам рекламы [email protected]