Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Какое зло может нести в себе STL ? 
V
    Опции темы
TupDub
Дата 10.12.2012, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Часто использую stl, да почти всегда! Лениво пишу после инклудов
Код

using namespace std;


И наслаждаюсь процессом. Но слышал, что так делать не хорошо, особенно в больших проектах!

Собственно почему ? 

И в общем, какое зло может нести в себе STL ? Какие он имеет минусы ?

Спасибо!
PM   Вверх
NoviceF
Дата 10.12.2012, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



саттер александреску стандарты программирования на с++

Правило 59. Не используйте using для пространств имён в заголовочных файлах или перед дидективой #include

Добавлено через 1 минуту и 38 секунд
И кстати, при чём здесь STL? )
PM MAIL   Вверх
TupDub
Дата 10.12.2012, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



ОК, STL как частный случай. Просто я его очень часто юзаю, не задумываясь глубоко. Можете пояснить свой ответ примером ? 
PM   Вверх
NoviceF
Дата 10.12.2012, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Цитата(TupDub @ 10.12.2012,  23:38)
ОК, STL как частный случай. Просто я его очень часто юзаю, не задумываясь глубоко. Можете пояснить свой ответ примером ?

Открой, плс, указанную книжечку, там толковое пояснение с примерами. Но вкратце, если помещаешь объявление using, перед какой-либо директивой #include, тем самым ты распространяешь действие using на весь включённый #include код, который к этому может быть совсем не готов. Например, может вызываться не то, что ты рассчитываешь, если конкретное имя есть в #include и в std::. Лично на практике не сталкивался (т.к. её пока толком нет), но смысл мне видится таким.
PM MAIL   Вверх
TupDub
Дата 10.12.2012, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Ок, книгу почитаю, спасибо! Но у меня остался вопрос про STL ? Форумчане, так ли хороша эта библиотека, везде ли или может, где-то лучше без неё ?

PM   Вверх
Фантом
Дата 10.12.2012, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: 4
Всего: 49



Цитата(TupDub @  10.12.2012,  23:28 Найти цитируемый пост)

И наслаждаюсь процессом. Но слышал, что так делать не хорошо, особенно в больших проектах!
Собственно почему ? 


Потому что тем самым ликвидируются преимущества, которые дает наличие в языке пространств имен. Все, грубо говоря, будет свалено в одну кашу, разбираться в которой будет неудобно (а для крупных проектов это обычно фатально).

Цитата(TupDub @  10.12.2012,  23:54 Найти цитируемый пост)
Но у меня остался вопрос про STL ? Форумчане, так ли хороша эта библиотека, везде ли или может, где-то лучше без неё ?

Где-то, безусловно, лучше без нее. Где-то лучше с ней. В общем случае, без уточнения области применения, вопрос лишен смысла. 
PM   Вверх
NoviceF
Дата 11.12.2012, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Цитата(Фантом @  11.12.2012,  00:48 Найти цитируемый пост)
Где-то, безусловно, лучше без нее. 


Я вот немного сталкивался с кьютом, и там часть функционала STL дублируется (может быть и весь, сильно не вникал), вот есть смысл использоваться STL с кьютом (там всё таки есть какая-то обратная совместимость)? Или стоит учить функционал кьюта и по максимум использовать его (ну в приложениях на кьюте ессно)?
PM MAIL   Вверх
kosmonaFFFt
Дата 11.12.2012, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 538
Регистрация: 14.4.2008
Где: Иннополис

Репутация: нет
Всего: 5



Например написав using namespace stl; using namespace boost; рискуешь нарваться на конфликты имен... Я например так сталкивался с конфликтом boost::exception и std::exception...


--------------------
user posted image
PM MAIL ICQ   Вверх
azesmcar
Дата 11.12.2012, 09:48 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Цитата(NoviceF @  11.12.2012,  07:21 Найти цитируемый пост)
Я вот немного сталкивался с кьютом, и там часть функционала STL дублируется (может быть и весь, сильно не вникал), вот есть смысл использоваться STL с кьютом

Qt насколько я помню дает некоторые гарантии относительно потокобезопасности чтения своих контейнеров, чего нет в STL по стандарту.

Цитата(TupDub @  10.12.2012,  22:54 Найти цитируемый пост)
Форумчане, так ли хороша эта библиотека, везде ли или может, где-то лучше без неё ?

Где-то лучше, но в 90% случаев с ней лучше smile
Скажем так: пока ты не знаешь в каких случаях он НЕ нужен - смело его используй. STL может здорово облегчить жизнь.
PM   Вверх
TupDub
Дата 11.12.2012, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 21.11.2009

Репутация: нет
Всего: нет



Всем спасибо! Буду читать внимательно стандарты! Вопрос решён! 
PM   Вверх
NoviceF
Дата 12.12.2012, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Кстати о примерах, только что столкнулся с конфликтом имён функций bind из API сокетов и STL - вот и using namespace std. В моих микрозадачах это, конечно, не критично.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1089 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.