Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 November 15

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Jmik
Я где то слышал
Что шаблоны <> в плюсах
Просто генерируют кучу внрсий функции на этапе компиляции
Верно?

Ори генерят функции для всех типов? Или как?
И если не для всех, то что будет если вызвать функу с типом для которого ее не скомпилили?
Собираются версии только для тех типов, которые ты используешь при её вызове
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
cppinsights есть сайтец такой, показывает что происходит на этапе предкомпиляции, если можно так выразиться
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Можешь чекать им что происходит с шаблонами
источник

J

Jmik in IT KPI C/C++ ХВ (не UB)
Aleksey Belkevich
Собираются версии только для тех типов, которые ты используешь при её вызове
А если я компилю либу и на момент компиляции не извесно с какими типами ее будут вызывать?
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
Jmik
Ну если слово не подсветилось, значит ты делаешь что-то не так))

^n - встроеное автодополнение по коду (не шарит за вложеность, но шарит за инклюды)
^x^f - дополнение по файлам удобно когда мейкфайл пишешь
^w - префикс для работы с окнами
(Аля :split и :vsplit)
:E - файловик в виме....
that's great, why not?
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
кст, использование vim в отличие от, к примеру, vscode дает ощутимый прирост?
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Jmik
А если я компилю либу и на момент компиляции не извесно с какими типами ее будут вызывать?
Хороший вопрос
Насколько мне известно это не поддерживается, так как итоговоый бинарь твоей библиотеки не может быть изменён в рантайме. Да и если бы мог, то просчёт размеров для типов данных был бы совсем не тривиальной задачей
источник

V

Vsevolod in IT KPI C/C++ ХВ (не UB)
шаблонные ж функции обитают в хедерах целиком, а значит происходит всё аналогично
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Часто используют схему с тем что собранный бинарник либы реализует определённые примитивные типы данных, + кладут в комплект набор хедеров которые шаблонами могут это всё дело привести к простым типам
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Но ещё чаще просто дают комплект исходников чтобы пользователи и разработчики библиотеки не страдали
источник

AB

Aleksey Belkevich in IT KPI C/C++ ХВ (не UB)
Вот как хороший пример это libcxx, там всё шаблонное работает через хедеры, а сам бинарник реализует простейшие действия
источник

M

Metropoliten666 in IT KPI C/C++ ХВ (не UB)
qwerty
кст, использование vim в отличие от, к примеру, vscode дает ощутимый прирост?
Так в vscode есть плагин эмулятора вим
источник

J

Jmik in IT KPI C/C++ ХВ (не UB)
qwerty
кст, использование vim в отличие от, к примеру, vscode дает ощутимый прирост?
Ну, многие говорят что да.
А я печатаю медленно
Хотя всякие ddp ci" и то, что вим есть на любой юних машине
Дают мне комфорт что-ли
Хотя желательно за собой .vimrc таскать
Ибо
Без бинда <esc> на JK шоб правой рукой в нормал выходить уже тяжело

Ну и + есть vimstyle плагины на доугие иде/редакторы
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
а какие еще крутые вещи есть в виме, кроме макросов?
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
вот макросы реально крутые штуки, я до этого писал определенный скрипт, чтобы как-то отредачить файл, а тут нажал несколько клавиш именно в редакторе и получил то, что нужно
источник

q

qwerty in IT KPI C/C++ ХВ (не UB)
Jmik
Ну, многие говорят что да.
А я печатаю медленно
Хотя всякие ddp ci" и то, что вим есть на любой юних машине
Дают мне комфорт что-ли
Хотя желательно за собой .vimrc таскать
Ибо
Без бинда <esc> на JK шоб правой рукой в нормал выходить уже тяжело

Ну и + есть vimstyle плагины на доугие иде/редакторы
да, я ща тыкаю их
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
qwerty
а какие еще крутые вещи есть в виме, кроме макросов?
ci(
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
метаязык вот этот
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
Можно пройти вимтутор, потратить 20 минут времени и понять базовые приколы
источник

JC

Julian =) Coffee in IT KPI C/C++ ХВ (не UB)
То есть не, видос на 40 минут о том, смотрите как я себе настроил статусную строку а именно то, что касается редактирования и то, что в виме уникальное
источник