вторник, 8 июня 2021 г.

[prog.wtf] Ну вот правда, как с этим жить?

Честно, не представляю себе, как можно дальше жить в мире, где нормальным считается применение инструмента, провоцирующего на написание чего-то вроде:

add_executable(myapp main.cpp foo.c bar.cpp zot.cu)
target_compile_definitions(myapp
  PRIVATE $<$<COMPILE_LANG_AND_ID:CXX,AppleClang,Clang>:COMPILING_CXX_WITH_CLANG>
          $<$<COMPILE_LANG_AND_ID:CXX,Intel>:COMPILING_CXX_WITH_INTEL>
          $<$<COMPILE_LANG_AND_ID:C,Clang>:COMPILING_C_WITH_CLANG>
)

Если кто не в курсе (счастливчики!), то здесь условные операторы в угловых скобках. Вложенные.

И если бы не специальная поддержка в CMake магической COMPILE_LANG_AND_ID, то приведенный выше фрагмент пришлось бы записать вот так:

target_compile_definitions(myapp
  PRIVATE $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:AppleClang,Clang>>:COMPILING_CXX_WITH_CLANG>
          $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Intel>>:COMPILING_CXX_WITH_INTEL>
          $<$<AND:$<COMPILE_LANGUAGE:C>,$<C_COMPILER_ID:Clang>>:COMPILING_C_WITH_CLANG>
)

Я даже уже не пытаюсь представить какому сумрачному гению это все пришло в голову. Более того, я даже не пытаюсь больше понять, почему такое количество разработчиков готовы с этим мирится. Ну вот таков мир, что поделать, остается принимать его каков он есть.

Однако, никогда у меня не бывает настолько же сильного желания уйти навсегда из С++, как в случаях, когда самому приходится погружаться в CMake-код. Да и не только из мира C++, но и вообще из программирования.

PS. Месяца четыре назад была возможность послать C++ к чертям собачим не нарушая никаких обязательств. Почему не воспользовался... Эх.

понедельник, 7 июня 2021 г.

[life.music] Продолжение саги о выборе хороших, но недорогих наушников на Aliexpress. Обзор побывавших у меня динамических вкладышей

Сегодня поделюсь своими впечатлениями о ряде динамических наушников-вкладышей, которые побывали в моих руках. Все они были куплены на Aliexpress. Часть из них пришла уже в готовом, собранном виде. Часть покупалась по комплектующим и собиралась мной самостоятельно.

Снимков наушников практически не будет, т.к. их слишком много и выглядят они в общем-то весьма однотипно. Приношу извинения, но возиться с фотографированием этого добра очень не хочется. Так что буду прилагать скриншоты со страничек этих наушников/динамиков на Aliexpress.

[prog.c++] Презентация о проекте arataga на английском

Подготовили презентацию о проекте arataga на английском языке. Надеюсь, кому-то будет полезна, поскольку не так-то и просто найти информацию о том, как же модель акторов применяется на практике в реальных C++ных проектах.

Эта же презентация есть на SlideShare.