Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.59
Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
#1

#include <list> - конфликт using namespace std с другими инклюдами - C++

01.09.2010, 02:17. Просмотров 4138. Ответов 10
Метки нет (Все метки)

Всем привет. Появилась надобность использовать списки, однако #include <list> подключается только вместе с using namespace std.

Мои инклюды
C++
1
2
3
4
5
6
7
8
#pragma once
#include "network.h"
#include <d3dx9.h>
#include "L_text.h"
#include "L_smesh.h"
#include "L_camera.h"
#include "L_terrain.h"
#include "player.h"
Собственно варианты:
1.
C++
1
2
#include <list>
using namespace std
Появился ряд warning'ов, вида
warning C4995: 'gets': name was marked as #pragma deprecated
И две ошибки вида
error C2143: syntax error : missing ';' before '<class-head>'
2.
C++
1
#include <list>
Программа компилируется и запускается, однако использовать листы не выходит.
C++
1
list<int> TestList;
Похоже что не знает что делать с оператором "<".
error C2143: syntax error : missing ';' before '<'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C2238: unexpected token(s) preceding ';'
3.
C++
1
#include <list.h>
fatal error C1083: Cannot open include file: 'list.h': No such file or directory
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.09.2010, 02:17
Здравствуйте! Я подобрал для вас темы с ответами на вопрос #include <list> - конфликт using namespace std с другими инклюдами (C++):

что использовать std::cout или просто using namespace std? - C++
Приветствую! Сейчас учу С++, постигаю азы так сказать. В арсенале две книги - Джефф Кент, &quot;Основы программирования &quot; и Х.М....

Зачем часто писать std::, если можно один раз using namespace std? - C++
зачем часто писать std:: если можно один раз using namespace std?

Пространство имен - namespace std или std:: - C++
В каких случая лучше писать (std::cout) или просто прописать (namespace std) и почему ?

using namespace std - C++
using namespace std; скажите плиз что означает ета строка и для чего она нужна?

std:: vs namespace - C++
Тема не для холивара, объясните пожалуйста чем лучше std:: а не using namespace std ? Без namespace std, возникает такая ошибка, но...

using namespace std - C++
Обьясните пожалуйста понятным языком, что такое пространство имен, и зачем нужна эта команда или std::

10
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
01.09.2010, 07:15 #2
Чем такой вариант не годится:
C++
1
2
3
4
5
//using name space std;
using std::cout;
using std::cin;
using std::endl;
//то что вам нужно еще
?
0
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
01.09.2010, 10:26 #3
C++
1
std::list<int> TestList;
И так же все остальное просто писать через оператор разрешения видимости от std(то, что входит в стд только)
0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
01.09.2010, 11:14 #4
Цитата Сообщение от Tilk Посмотреть сообщение
using namespace std
точка с запятой должна стоять
C++
1
using namespace std;
А правильнее, как Lavroff написал. Никаких узинг-шмузинг
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <list>
#include <string>
...
std::string string;
std::list<std::string> list;
std::cout << "enter some strings and empty one when finish:" << std::endl;
while ( std::getline(std::cin, string) && ! string.empty() )
  list.push_back(string);
...
0
alex_x_x
01.09.2010, 13:19
  #5

Не по теме:

easybudda, какой смысл покуда нет коллизии имен внутри cpp насиловать код std:: ?

0
easybudda
01.09.2010, 13:37
  #6

Не по теме:

Цитата Сообщение от alex_x_x Посмотреть сообщение
какой смысл покуда нет коллизии имен внутри cpp насиловать код std:: ?
Смысл в том, чтобы к этому привыкнуть, а не чесать репу, когда она (коллизия) произойдёт...

0
CyBOSSeR
01.09.2010, 18:23
  #7

Не по теме:

Цитата Сообщение от alex_x_x Посмотреть сообщение

Не по теме:

какой смысл покуда нет коллизии имен внутри cpp насиловать код std:: ?

Как насчет того, что сразу будет понятно, что используется функция, класс и т.п. именно из стандартной бибилотеки.

0
alex_x_x
01.09.2010, 18:45
  #8

Не по теме:

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Как насчет того, что сразу будет понятно, что используется функция, класс и т.п. именно из стандартной бибилотеки.
не думаю, что здравый программист будет использовать для описания своих структур данных cout, list, count_if итд, просто довольно редко встречались проблемы с коллизией имен, и компилятор говорил о них очень прямо - вот тогда я понимаю использовать std::

0
easybudda
Модератор
Эксперт CЭксперт С++
9663 / 5613 / 952
Регистрация: 25.07.2009
Сообщений: 10,776
01.09.2010, 19:02 #9
Цитата Сообщение от alex_x_x Посмотреть сообщение
не думаю, что здравый программист будет использовать для описания своих структур данных cout, list,
Цитата Сообщение от easybudda Посмотреть сообщение
std::list<std::string> list;
И что в этом нездорового? Просто минус заморочка с придумыванием имени...
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
01.09.2010, 19:37 #10
list прям очень говорящее имя, сразу понимаешь о чем речь
0
Tilk
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 79
02.09.2010, 00:23  [ТС] #11
Блин, стыдно-то как... с точкой с запятой все работает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2010, 00:23
Привет! Вот еще темы с ответами:

namespace std - C++
Добрый день. Вычитал что могу использовать любой namespace. Но в другом месте написано что если не использовать std, то не сможет...

Using namespace std - C++
В чем отличие, если один cout (или что-то другое) будет в std, а другой stdd, для чего вообще using namespace? Уже везде где только можно...

using namespace std; - C++
Здравствуйте. Я заметил, что многие программисты стараются избегать этой строчки в своих программах. С чем это связанно? И еще...

Namespace & #include что-то непонятное - C++
Есть проект состоящий из множества файлов cpp и h. и имена классов в них пересекаются, но не беда оборачиваю эти классы в namespace...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
02.09.2010, 00:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru