Я бы хотел использовать инструкции без std :: в моем коде на C++ в операционной системе Linux (например, cout вместо std :: cout, map <> вместо std :: map <> и т. Д.). Какие заголовки необходимы для его выполнения?Какие заголовки должны быть включены, чтобы оставить префикс std :: в моем коде на C++ в Linux?
ответ
Как комментаторы указал: нет никакого не включает сделать это, нужно просто включить ваши файлы, как обычно, а затем написать using namespace
statement
#include <iostream> // cout
#include <map> // map
using namespace std; // bring this entire namespace into scope
Однако; вы должны отметить, а комментаторы указали, this is a terrible ideaособенно в файле заголовка. Для лишних персонажей, которые вам нужно написать, вы можете сэкономить несколько часов после сбоев. Если вы действительно против написания std::
, рассмотреть вопрос об ограничении сферы, что вы делаете это в
{
// lots of console printing:
using std::cout;
cout << "";
...
}
// Now you'd need to write std::cout again
Это ОС-независимый (решение для Linux является одинаковым для других операционных систем)
Чтобы быть точным, это ужасная идея в глобальной области видимости или пространстве пространства имен в файле заголовка. Он может быть приемлемым (IMO) внутри определения встроенной функции в файле заголовка. –
Это не совсем вопрос #include some header, , вы можете опустить явное пространство имен, используя using namespace statement.
Если вы хотите опустить (на самом деле: объединить все элементы станд :: пространства имен в глобальное пространство имен, которое не может быть действительно хорошая практика), вы можете использовать:
using namespace std;
обычно после директив #includes, но перед любым кодом, ссылающимся на std.
* «Это может быть не очень хорошая практика» * является довольно преуменьшением. –
Если у вас есть классы, которые вы хотите включить в пространство имен по умолчанию, вы можете с ними связать их с помощью using
. Например:
using std::cout;
Вы можете импортировать все пространство имен с using namespace
, но вы хотите, чтобы читать и понимать «Why is using namespace std
considered bad practice?» первым.
'using namespace std;' anyway, http://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice – Danh
Нет, не через заголовок. Нет, это не зависит от ОС. –
Вы должны использовать те же заголовки, но пишите 'using namespace std;' в верхней части кода. [** Однако это плохая идея **] (http://stackoverflow.com/q/1452721/1171191). Не делай этого. – BoBTFish