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

Где можно посмотреть коды шаблонов STL? - C++

Восстановить пароль Регистрация
 
 
Peoples
716 / 376 / 340
Регистрация: 06.02.2016
Сообщений: 1,002
Записей в блоге: 10
Завершенные тесты: 3
14.08.2016, 15:31     Где можно посмотреть коды шаблонов STL? #1
Не подскажите где можно посмотреть коды шаблонов stl. То есть конкретно код реализации шаблона sort например.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
14.08.2016, 15:40     Где можно посмотреть коды шаблонов STL? #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Лежат себе в папочке include а в какой именно подпапке - зависит от IDE/компилятора в комплекте с которым идут.
Тока смотри аккуратно -там глаза сломать и мозг вывихнуть наизнанку можно если пытаться в этом навозе что либо разобрать
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,801
Завершенные тесты: 1
14.08.2016, 15:42     Где можно посмотреть коды шаблонов STL? #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
в любой ИДЕ ПКМ на std::sort
из контекстного меню ---> "перейти к определению".
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
14.08.2016, 15:46     Где можно посмотреть коды шаблонов STL? #4
Цитата Сообщение от Peoples Посмотреть сообщение
где можно посмотреть коды шаблонов stl
В любой IDE есть возможность перехода через какой-нибудь Ctrl+Click в место определения имени, на которое кликаешь.
Ferrari F1
Заблокирован
296 / 282 / 62
Регистрация: 27.01.2015
Сообщений: 1,901
Записей в блоге: 1
Завершенные тесты: 1
14.08.2016, 16:18     Где можно посмотреть коды шаблонов STL? #5
Fulcrum_013, можете объяснить почему там все так непонятно написано? специально?
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
14.08.2016, 16:24     Где можно посмотреть коды шаблонов STL? #6
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
можете объяснить почему там все так непонятно написано? специально?
потому что говнокодеры безграмотные писали
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
14.08.2016, 16:52     Где можно посмотреть коды шаблонов STL? #7
Цитата Сообщение от Ferrari F1 Посмотреть сообщение
можете объяснить почему там все так непонятно написано?
Не осилил, че.
Месье не понимает, что разработчики компиляторов вынуждены так писать.
И при определенном опыте, всё там без проблем читается.
Voivoid
 Аватар для Voivoid
580 / 256 / 12
Регистрация: 31.03.2013
Сообщений: 1,284
14.08.2016, 17:02     Где можно посмотреть коды шаблонов STL? #8
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
потому что говнокодеры безграмотные писали
Да, с С++ - победа над здравым смыслом и С++ - победа над здравым смыслом не сравнить
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,801
Завершенные тесты: 1
14.08.2016, 17:05     Где можно посмотреть коды шаблонов STL? #9
Цитата Сообщение от Croessmah Посмотреть сообщение
разработчики компиляторов вынуждены так писать
в чем заключается необходимость?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
14.08.2016, 17:10     Где можно посмотреть коды шаблонов STL? #10
Цитата Сообщение от hoggy Посмотреть сообщение
в чем заключается необходимость?
Например, в уменьшении коллизий с пользовательским кодом,
учетом множества платформ, разные наборы ключей и т.д.
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
14.08.2016, 17:19     Где можно посмотреть коды шаблонов STL? #11
Цитата Сообщение от Croessmah Посмотреть сообщение
Например, в уменьшении коллизий с пользовательским кодом,
учетом множества платформ, разные наборы ключей и т.д.
К примеру VCL и FireMonkey тоже под кучу платформ ключей и т.п. НО при этом прекрасно читабельны.

Добавлено через 1 минуту
Цитата Сообщение от Voivoid Посмотреть сообщение
Да, с С++ - победа над здравым смыслом и С++ - победа над здравым смыслом не сравнить
Зато у меня указатели двунправленные и объекты сами из контейнеров вычищаются если их удалить. А STL так не умеет.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
14.08.2016, 17:20     Где можно посмотреть коды шаблонов STL? #12
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
НО при этом прекрасно читабельны.
Я код gcc тоже прекрасно читаю.
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,801
Завершенные тесты: 1
14.08.2016, 17:22     Где можно посмотреть коды шаблонов STL? #13
Цитата Сообщение от Croessmah Посмотреть сообщение
Например, в уменьшении коллизий с пользовательским кодом,
для этого существует нотация имен.
это не объясняет факт того, что сами по себе имена зачастую нечитабельные.

Цитата Сообщение от Croessmah Посмотреть сообщение
учетом множества платформ
стандартная библиотека пишется под ключ конкретного компилятора под конкретную платформу.
разные платформы и компиляторы - разные стандартные библиотеки.

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

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

однако на примере как стандартной библиотеки, которая под ключ тулченйа,
так и на примере кросс-платформенного boost,
мы наблюдаем аццкий говнокод.

я повторю свой вопрос: с чем связанна необходимость?

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
Я код gcc тоже прекрасно читаю.
это лишь благодаря тому, что у вас скилл чтения говнокода квалификация позволяет.

однако способность справляться с дикарями,
не делает последних цивилизованными.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
14.08.2016, 17:58     Где можно посмотреть коды шаблонов STL? #14
Цитата Сообщение от hoggy Посмотреть сообщение
вынести компиляторо-платформо-ключи зависимые вещи в отдельный конфигурационный хедер,
где возможные зависимости разруливаются на дефанах препроцессора.
Угу, именно так оно и делается.
Цитата Сообщение от hoggy Посмотреть сообщение
разные платформы и компиляторы - разные стандартные библиотеки.
У одного компилятора на разных платформах, как правило,
изменены только те самые платформо-зависимые штуки,
всё остальное остается общим по мере возможностей.
Вот эти самые общие штуки очень хорошо читаются.
Цитата Сообщение от hoggy Посмотреть сообщение
для этого существует нотация имен.
угу, поэтому для реализации зарезервированы имена,
начинающиеся с двух подчеркиваний.
Эти имена, лично меня, бесят больше всего,
хотя при определенном уровне глазного парсера они не доставляют особых неудобств.
Цитата Сообщение от hoggy Посмотреть сообщение
это не объясняет факт того, что сами по себе имена зачастую нечитабельные.
как-правило, это сокращения, причем врядли они непонятны разработчикам,
и, скорее всего, стандартизированы главнюками
Цитата Сообщение от hoggy Посмотреть сообщение
однако способность справляться с дикарями,
не делает последних цивилизованными.
Красивые бусы из зубов врагов тоже не приводят к цивилизации
Цитата Сообщение от hoggy Посмотреть сообщение
так и на примере кросс-платформенного boost,
мы наблюдаем аццкий говнокод.
Наблюдаем, но это не значит, что оно прям вот не читаемо. Хотя, в бусте сам черт ногу сломит.
Однако, опять же, его разрабатывают, а значит и читают
Цитата Сообщение от hoggy Посмотреть сообщение
это лишь благодаря тому
И че, я один такой? А раз нет, значит явление массовое.
hoggy
5225 / 2116 / 403
Регистрация: 15.11.2014
Сообщений: 4,801
Завершенные тесты: 1
14.08.2016, 18:09     Где можно посмотреть коды шаблонов STL? #15
Цитата Сообщение от Croessmah Посмотреть сообщение
как-правило, это сокращения, причем врядли они непонятны разработчикам,
и, скорее всего, стандартизированы главнюками
они не понятны всем, кроме непосредственных участников.
да и тем, через полгода приходится заново вдуплять.

реально, такое впечатление, что они прочли Макконелла и Мартина,
и сделали все с точностью наоборот.

обоснования этому явлению нет.
ничто не мешало в рамках плюсовой нотации.
элементарно - давать вменяемые имена переменным/функциям/etc.

Цитата Сообщение от Croessmah Посмотреть сообщение
Наблюдаем, но это не значит, что оно прям вот не читаемо.
именно что значит.
именно потому, что его приходится осиливать,
а не просто читать.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11827 / 6806 / 769
Регистрация: 27.09.2012
Сообщений: 16,878
Записей в блоге: 2
Завершенные тесты: 1
14.08.2016, 18:15     Где можно посмотреть коды шаблонов STL? #16
Цитата Сообщение от hoggy Посмотреть сообщение
реально, такое впечатление, что они прочли Макконелла и Мартина
Чет мне кажется, что оно существовало еще до выхода этих книг
gru74ik
Модератор
 Аватар для gru74ik
3118 / 1344 / 167
Регистрация: 20.02.2013
Сообщений: 3,810
Записей в блоге: 17
14.08.2016, 18:38     Где можно посмотреть коды шаблонов STL? #17
Цитата Сообщение от Croessmah Посмотреть сообщение
мне кажется, что оно существовало еще до выхода этих книг
У Макконнелла первое издание "Code Complete" вышло в 1993 году.
HelicopterK52
633 / 176 / 28
Регистрация: 27.07.2016
Сообщений: 475
Завершенные тесты: 1
14.08.2016, 18:39     Где можно посмотреть коды шаблонов STL? #18
Цитата Сообщение от gru74ik Посмотреть сообщение
У Макконнелла первое издание "Code Complete" вышло в 1993 году.
gcc вышел раньше В 87-ом, вроде ли в 85-ом...
Возможно, после просмотра исходников gcc Макконнелл и решил написать свою книгу
gru74ik
Модератор
 Аватар для gru74ik
3118 / 1344 / 167
Регистрация: 20.02.2013
Сообщений: 3,810
Записей в блоге: 17
14.08.2016, 18:45     Где можно посмотреть коды шаблонов STL? #19
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
gcc вышел раньше В 87-ом, вроде ли в 85-ом...
Зато STL и Boost появились позже.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.08.2016, 20:09     Где можно посмотреть коды шаблонов STL?
Еще ссылки по теме:

Библиотека шаблонов STL C++
Где можно найти код реализации библиотеки STL C++
Библиотека стандартных шаблонов STL C++

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

Или воспользуйтесь поиском по форуму:
Fulcrum_013
 Аватар для Fulcrum_013
393 / 566 / 60
Регистрация: 14.12.2014
Сообщений: 4,769
Завершенные тесты: 2
14.08.2016, 20:09     Где можно посмотреть коды шаблонов STL? #20
Цитата Сообщение от Croessmah Посмотреть сообщение
Я код gcc тоже прекрасно читаю.
А я брезгую читать код с файловых помоек.

Добавлено через 1 час 21 минуту
Цитата Сообщение от hoggy Посмотреть сообщение
да и тем, через полгода приходится заново вдуплять.
Да не то слово. Бывает что заново вдуплять не то что через пол-года, через пол-месяца приходится даже при таком подходе к именам:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <class Type, class OwnerType> class TProcessingLists;
template <class Type,class OwnerType, unsigned StatesCountT>
class TProcessableObject :public TOwnedObject<Type, OwnerType>{ 
private:    
    friend class TProcessingLists<Type, OwnerType>;
    int ProcessingListsIds[StatesCountT];
protected:  
    bool GetState(int StateId){ return ProcessingListsIds[StateId] !=   NotInList; }
    void SetState(int StateId, bool NewValue){
        if (NewValue == State[StateId]) return;
        if (NewValue) Owner->AddProcess(StateId, (Type*)this);
        else Owner->RemoveProcess(StateId, (Type*)this);
    }
    RWproperty(GetState, SetState) bool State[];
public:
    static const int StatesCount = StatesCountT;
    TProcessableObject(OwnerType *aOwner) :TOwnedObject(aOwner){
        for (int i = 0; i < StatesCount; i++) ProcessingListsIds[i] = NotInList;
    };
};
Почему и говорю что все эти сборники говноабреввиатур в коде STLисточник багов а посему либы написанные в таком стиле как stl по определению unsafe и вообще пригодны не более чем для хеллоувердов.
Yandex
Объявления
14.08.2016, 20:09     Где можно посмотреть коды шаблонов STL?
Ответ Создать тему

Метки
stl шаблоны
Опции темы

Текущее время: 21:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru