LOGOFALPROG Telegram 245
Ixxtension

Не так давно я перевёл свой Crunch House на С++ модули. Надо сказать, это та ещё попоболь, даже если проект пока ещё крошечный.

Во-первых, главные вендоры IDE в 2024 до сих пор не договорились какое должно быть расширение у интерфейса модуля. Настроить это всё дело кроссплатформенно и через CMake — это вообще не тривиальная процедура. Но, слава богу, я эту часть полностью скипнул, так как работаю только под виндой и под вижак.

Однако же, я в полной мере вкусил во-вторых: мешать модули и обычные хедеры нельзя. Если ты сделал import std в одном хедере, то будь добр делай так же во всех (в рамках одного транслейшн юнита). Заинклудил 3rd-party библиотечку, которая где-то там внедрах использует vector? Ну всё, каюк: нечитабельные ошибки тебе обеспечены.

В-третьих, почти нереально модулизировать что-то перекрытое макросами, типа directx 12 API. Оно ещё тянет всякие виндовые хедеры, ComPtr и прочие приколы, которые тоже могут с std законфликтовать. В общем, без хаков не обходится.

Я уж молчу про то, что подсветка IDE конкретно тупит и отваливается на модулях. И всяких банальных удобств нет, типа переключения между cpp и ixx файлами. Последнее меня настолько сильно бесило, что я написал VS extension для этой цели. Назвал его Ixxtension, забирайте, если вдруг таким же страдаете.

Тем не менее намерен дальше пилить модулями. Всё ещё хочется верить, что за ними будущее. Надеюсь, что когда-нибудь это перестанет быть редким инопланетным синтаксисом (как trail return type), а станет мейнстримом. Если это случится, то пусть у меня уже будет модульный проект к тому времени. Потому что портировать большую кодобазу это совсем анрил.



tgoop.com/logofalprog/245
Create:
Last Update:

Ixxtension

Не так давно я перевёл свой Crunch House на С++ модули. Надо сказать, это та ещё попоболь, даже если проект пока ещё крошечный.

Во-первых, главные вендоры IDE в 2024 до сих пор не договорились какое должно быть расширение у интерфейса модуля. Настроить это всё дело кроссплатформенно и через CMake — это вообще не тривиальная процедура. Но, слава богу, я эту часть полностью скипнул, так как работаю только под виндой и под вижак.

Однако же, я в полной мере вкусил во-вторых: мешать модули и обычные хедеры нельзя. Если ты сделал import std в одном хедере, то будь добр делай так же во всех (в рамках одного транслейшн юнита). Заинклудил 3rd-party библиотечку, которая где-то там внедрах использует vector? Ну всё, каюк: нечитабельные ошибки тебе обеспечены.

В-третьих, почти нереально модулизировать что-то перекрытое макросами, типа directx 12 API. Оно ещё тянет всякие виндовые хедеры, ComPtr и прочие приколы, которые тоже могут с std законфликтовать. В общем, без хаков не обходится.

Я уж молчу про то, что подсветка IDE конкретно тупит и отваливается на модулях. И всяких банальных удобств нет, типа переключения между cpp и ixx файлами. Последнее меня настолько сильно бесило, что я написал VS extension для этой цели. Назвал его Ixxtension, забирайте, если вдруг таким же страдаете.

Тем не менее намерен дальше пилить модулями. Всё ещё хочется верить, что за ними будущее. Надеюсь, что когда-нибудь это перестанет быть редким инопланетным синтаксисом (как trail return type), а станет мейнстримом. Если это случится, то пусть у меня уже будет модульный проект к тому времени. Потому что портировать большую кодобазу это совсем анрил.

BY Log of Alprog


Share with your friend now:
tgoop.com/logofalprog/245

View MORE
Open in Telegram


Telegram News

Date: |

ZDNET RECOMMENDS Telegram iOS app: In the “Chats” tab, click the new message icon in the right upper corner. Select “New Channel.” SUCK Channel Telegram As of Thursday, the SUCK Channel had 34,146 subscribers, with only one message dated August 28, 2020. It was an announcement stating that police had removed all posts on the channel because its content “contravenes the laws of Hong Kong.”
from us


Telegram Log of Alprog
FROM American