В C ++ оператор using
не связан с включением функциональности этого пространства имен (или типа). Вместо этого он позволяет вам использовать пространство имен в операторе без префикса пространства имен в остальной части текущей области (или единицы компиляции, если у вас есть инструкция в глобальной области видимости) после оператора using
.
Так что вы можете написать
#include <string>
std::string my_string;
или
#include <string>
using namespace std;
string my_string;
Как уже упоминали другие - первая версия более рекомендуется, чем вторая, потому что обычно есть причина, по которой вещи находятся в их собственном пространстве имен (например, здесь есть пространство имен std
). Если у вас есть общий оператор using
, вы можете столкнуться с неожиданными конфликтами имен или другими проблемами. Это особенно верно, если вы делаете это в заголовочном файле, что никогда не следует делать, если вы точно не знаете, какие будут результаты и где.