170 похожих чатов

(Мало ли появилось в природе. Помнится, спрашивал. Вроде не было.) Есть

ли какой-нибудь инструмент, способный раскидать сторонний h-файл на несколько, с учётом namespace-ов, возможно достав шаблоны из тела класса, и прочее?

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

16 ответов

11 просмотров

обколются своими single header only, а потом билд 3 дня собирается

Ты вообще понимаешь, что это сразу же UB, multiple definition?

Если это производитель сделает, это одно, а ты не должен

🐈- Автор вопроса
Ilya Zviagin
Ты вообще понимаешь, что это сразу же UB, multiple...

если честно не совсем понимаю откуда

не встречал таких инструментов - обычно разработчики пишут нормальный код и при желании склеивают его в один хедер (amalgamation). наоборот это просто нереально в общем случае

🐈
если честно не совсем понимаю откуда

Ну у тебя было одно определение скажем класса в большом заголовке. ты разобрал чужой заголовок на куски? Разобрал. Теперь имеешь другое определение того же класса. Кто даст гарантии, что ты , пока разбирал, ничего там не сломал? Ведь это легко делается, многое в С++ зависит от контекста определения.

Ilya Zviagin
Ну у тебя было одно определение скажем класса в бо...

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

Sergey Anisimov
Тем более что там весь файл, судя по всему, макрос...

Конечно. Так что нарушение ODR там просто на раз получить можно. Очень просто.

🐈
если честно не совсем понимаю откуда

Чуви, ну вот ты же долго уже с нами, должен же понимать, что этот вопрос надо было в ПРО задавать...

🐈- Автор вопроса
Ilya Zviagin
Чуви, ну вот ты же долго уже с нами, должен же пон...

Тут есть одна проблема. Мне иногда мои вопросы не кажутся пригодными для pro. Там всё-таки вопросы посерьёзнее. А это так, для новичков. )

Отличная библиотека, много ей пользуюсь. Если не секрет, то зачем её разбивать?

Это можно относительно просто сделать через тулинг clang: вынести определения функций в cpp, сгруппировать остальное по неймспейсам Заодно убрать эти замечательные запакованные шрифты на несколько килобайт из хедера) Но надо немножко кода написать

Sergey Skvortsov
Это можно относительно просто сделать через тулинг...

Сергей, напоминаю, у нас полуофициальное разрешение на бан за пропоганду UB, оно действует!

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта