ли какой-нибудь инструмент, способный раскидать сторонний h-файл на несколько, с учётом namespace-ов, возможно достав шаблоны из тела класса, и прочее?
Вариант "раздели сам руками" несколько затруднён ввиду того, что я хочу вот это превратить в удобоваримый вид. А так как оно постоянно дорабатывается автором, то "делить руками" придётся регулярно. (не очень понимаю, как можно вообще работать с файлами такого размера)
обколются своими single header only, а потом билд 3 дня собирается
Ты вообще понимаешь, что это сразу же UB, multiple definition?
Если это производитель сделает, это одно, а ты не должен
если честно не совсем понимаю откуда
не встречал таких инструментов - обычно разработчики пишут нормальный код и при желании склеивают его в один хедер (amalgamation). наоборот это просто нереально в общем случае
Ну у тебя было одно определение скажем класса в большом заголовке. ты разобрал чужой заголовок на куски? Разобрал. Теперь имеешь другое определение того же класса. Кто даст гарантии, что ты , пока разбирал, ничего там не сломал? Ведь это легко делается, многое в С++ зависит от контекста определения.
Тем более что там весь файл, судя по всему, макросами и директивами условной компиляции обмазан.
Конечно. Так что нарушение ODR там просто на раз получить можно. Очень просто.
Чуви, ну вот ты же долго уже с нами, должен же понимать, что этот вопрос надо было в ПРО задавать...
Тут есть одна проблема. Мне иногда мои вопросы не кажутся пригодными для pro. Там всё-таки вопросы посерьёзнее. А это так, для новичков. )
Отличная библиотека, много ей пользуюсь. Если не секрет, то зачем её разбивать?
65к строк, действительно ¯\_(ツ)_/¯
Это можно относительно просто сделать через тулинг clang: вынести определения функций в cpp, сгруппировать остальное по неймспейсам Заодно убрать эти замечательные запакованные шрифты на несколько килобайт из хедера) Но надо немножко кода написать
Алло, ЭТО НЕ НАДО ДЕЛАТЬ ВООБЩЕ!
Сергей, напоминаю, у нас полуофициальное разрешение на бан за пропоганду UB, оно действует!
да никто не говорит про UB
Обсуждают сегодня