А откуда возьмется unity если вы сами генерите весь cmake? или там таковая поддержка добавляется?
unity объединяет как правило TU в рамках одной shared/static либы. В ее рамках еще куда ни шло поддержать уникальность, но если у вас 200 целей, то это выглядит очень избыточным.
Увидел хеши для RTTI нужд, сразу пришла на ум замечательная статья о dynamic_cast за константное время: www.stroustrup.com/fdc_jcse.pdf
Вы не знакомы с этим методом? Или вам все равно нужно больше чем каст за счет каких-то фич C#, я не знаю даже. Или он не подходит т.к. типа должны кастится за пределами одной шаред библиотеки?
Имена файлов по возможности сохраняются (хотя из-за особенностей некоторых сборочных систем для C++ портер старается не допускать присутствия файлов с одинаковыми именами, пусть и в разных каталогах).
Можете рассказать, что за особенности такие, в контексте того что до этого написано что портирование идет на CMake? Или речь не про сборочную систему, а про то что может быть неоднозначность инклюда файла просто по короткому имени, когда не хочется запариваться с порядком инклюдов?
типа bool и после C99 нет. bool это просто макрос который соответствует типу _Bool. Если компилятор тип _Bool не определяет, то он будет определён как int.
Если говорить о легаси до C99, то там bool ваще как что угодно может быть определён. я и как enum встречал.
Часто вижу распространенную ошибку.
Для класса Navigator вам не нужен ни Q_OBJECT макрос, ни public slots: с технической строны. Если вам прям для понимания хочется иметь секцию слотов, если без неё вы не разберётесь что это слоты — пожалуйста. Коннекты будут работать прекрасно.
Почему это вообще важно? 1 строчка, добавил макрос и не паришься, «а вдруг вообще я потом сигналы добавлю» — ну лично мне, например, не хочется иметь лишний moc вызов в сборке (и разрастание размера образа из-за доп генерации).
Если вы используете cmake и moc
… и вас напрягает то что после добавления Q_OBJECT или убирания оного приходится перезапускать cmake для создания правил, можно сделать такой трюк:
пусть правило для генерации moc.cpp из .h будет всегда, но если макроса нет, то файл будет пустым. Потом все moc файлы можно в unity/amalgamation билд включить для еще большего ускорения.
Немного поздно оффтопить, но к статьям можно больше 1 опроса прикреплять, так что хватило бы 2 опросов по 4 варианта (ну или 3, не вижу причины не использовать «Воздержаться» как «затрудняюсь с ответом»)
Вопрос был не в том, когда хабр предоставит платные фишки, а в том, когда не останется бесплатных. Например, как на сайтах знакомств — хочешь оставить комментарий под новостью — плати 300 рублей.
Нет, вы мало подредактировали. Удалите все скриншоты с обзором функций программы, описания ее возможностей и прочего — оставьте только один абзац с предупреждением что это чёртов троян.
И формулировки вроде "(не исключено, что, это действительно так)" слишком обтекаемые. Выглядит как реклама откровенно фишингового софта все еще.
Вы наверное хотели тут блеснуть иронией, но я спрошу. Скажите, у вас никогда не было ощущения гнетущего от работы на месте, где вам откровенно переплачивают? Это отнюдь не стимулирует. 20% это конечно не проблема, но если тебе платят в 2-3 раза больше чем ты себя оцениваешь, это может привести к выгоранию.
не знаю про Incredibuild, с использованием Wuild, выигрыш есть и на 16, и на 18 ядрах на сборочном сервере. В сборке в пике больше ста ядер используются у нас. Но впрочем по моему ощущению Wuild гораздо эффективнее IB, а вот с distcc нет возможности сравнить, т.к. msvc он не поддерживает.
Выигрыш в скорости сборки у меня даже есть когда я со своей машины по VPN с пингом 80 сижу на другом континенте) правда не большой)
Не, кстати сам по себе кейс-то хороший, сказать мол, вот на вашем компьютере нечем открыть rar ваши действия?
— сказал «установлю 7zip, без прав админа поставлю в домашнюю директорию и открою» — принят (понятно что и тут можно занудствовать дальше, т.к. и это не везде в пишется в стандарт, это уже позже можно объяснить нюансы, про внутренние софтвер менеджеры в фирме)
— сказал «пойду спрошу админов чего по установке софта необходимого для работы» — принят
— сказал «ну вот в google вобью запрос чем открыть rar и скачаю» — скорее всего показатель того что человек пользователь-то уверенный, но не работал в корпоративной среде. Это не значит что его от ворот надо отгонять, но как минимум планировать для него программу onboard-обучения (во многих корпорациях она и так есть, но для среднего размера конторы может быть актуально), если его проф навыки, конечно, сомнений не вызывают.
Фух, а я уж боялся, что комментарии вроде вашего в минусах будут утопать. Похоже для маленькой организации на 5-20 человек рецепты из статьи и могут быть полезны, где в отсутствии большого штата IT поддержки, каждый сотрудник должен быть «сам себе эникейщик», и софт поставить «для открытия неизвестного формата», и с настройками принтера поразбираться и тп. Удачи им впрочем на собеседованиях, выставлять грамотных спецов 50+ лет, которые может и могут написать макросы для экселя, и может быть и шелл какой напишут, но затупят на вопросе про новомодный облачный клиент если они с ним не работали.
unity объединяет как правило TU в рамках одной shared/static либы. В ее рамках еще куда ни шло поддержать уникальность, но если у вас 200 целей, то это выглядит очень избыточным.
Увидел хеши для RTTI нужд, сразу пришла на ум замечательная статья о dynamic_cast за константное время:
www.stroustrup.com/fdc_jcse.pdf
Вы не знакомы с этим методом? Или вам все равно нужно больше чем каст за счет каких-то фич C#, я не знаю даже. Или он не подходит т.к. типа должны кастится за пределами одной шаред библиотеки?
Можете рассказать, что за особенности такие, в контексте того что до этого написано что портирование идет на CMake? Или речь не про сборочную систему, а про то что может быть неоднозначность инклюда файла просто по короткому имени, когда не хочется запариваться с порядком инклюдов?
Если говорить о легаси до C99, то там bool ваще как что угодно может быть определён. я и как enum встречал.
Для класса Navigator вам не нужен ни Q_OBJECT макрос, ни public slots: с технической строны. Если вам прям для понимания хочется иметь секцию слотов, если без неё вы не разберётесь что это слоты — пожалуйста. Коннекты будут работать прекрасно.
Почему это вообще важно? 1 строчка, добавил макрос и не паришься, «а вдруг вообще я потом сигналы добавлю» — ну лично мне, например, не хочется иметь лишний moc вызов в сборке (и разрастание размера образа из-за доп генерации).
пусть правило для генерации moc.cpp из .h будет всегда, но если макроса нет, то файл будет пустым. Потом все moc файлы можно в unity/amalgamation билд включить для еще большего ускорения.
дефолтные cmake методы из Qt конечно, не получится использовать, но можно быстренько написать что-то подобное:
github.com/mapron/FreeHeroes/blob/master/cmake/targets.cmake#L98
github.com/mapron/FreeHeroes/blob/master/cmake/mocWrapper.cmake.in
p.s. я промахнулся веткой, я хотел к комменту выше написать, но не удалять же теперь(
И формулировки вроде "(не исключено, что, это действительно так)" слишком обтекаемые. Выглядит как реклама откровенно фишингового софта все еще.
Выигрыш в скорости сборки у меня даже есть когда я со своей машины по VPN с пингом 80 сижу на другом континенте) правда не большой)
— сказал «установлю 7zip, без прав админа поставлю в домашнюю директорию и открою» — принят (понятно что и тут можно занудствовать дальше, т.к. и это не везде в пишется в стандарт, это уже позже можно объяснить нюансы, про внутренние софтвер менеджеры в фирме)
— сказал «пойду спрошу админов чего по установке софта необходимого для работы» — принят
— сказал «ну вот в google вобью запрос чем открыть rar и скачаю» — скорее всего показатель того что человек пользователь-то уверенный, но не работал в корпоративной среде. Это не значит что его от ворот надо отгонять, но как минимум планировать для него программу onboard-обучения (во многих корпорациях она и так есть, но для среднего размера конторы может быть актуально), если его проф навыки, конечно, сомнений не вызывают.