Cіпласпластик
525 subscribers
159 photos
35 videos
2 files
252 links
🇺🇦 Про айті та дотичні теми загалом, ну й трохи про C++.

Мої емоджі:
https://t.me/addemoji/AdaptiveDevIcons
https://t.me/addemoji/VehicleBrands
Download Telegram
Cіпласпластик
Як зрозуміти, що прога написана на Qt? — Ніхто не вміє працювати з High-DPI екранами 🧐 Навіть дефолтний #QML-проєкт, що генерується в Qt Creator з офіційного шаблону, містить некоректний код для Windows. В даному випадку бачимо завеликі іконки в macOS. Що…
Поточний стан справ з підтримкою High-DPI в офіційному інстоллері #Qt на вінді 🤡

(Тим часом ми пишемо десктопну програму на Qt під три системи, й у нас все ок).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
Cіпласпластик
Отже, історія отримала розвиток. Після чергової відмови від директорки Security & Compliance надати мені APIʼшку я накатав якийсь драматичний текст про те, як на всіх all-hands нарадах компанія парить про інновації та імпрувменти, а щойно справа дійшла до…
А ще питають такі:
— А на чому писати збираєшся?
— На C++ та #QML авжеж! (Хоча зараз думаю, що легше на Python+QML)
— У-у-у-у… Наші люди тільки на сішарпі та ангулярі вміють…

І важко їх звинуватити в чомусь. The #Qt Company просрала можливість зайняти нішу на десктопах (та й на решті систем втрачає позиції). Шкода, бо QML сама по собі дуже прикольна 😢 Але недовго їй лишилось, мабуть.
Please open Telegram to view this post
VIEW IN TELEGRAM
👀1
Щойно написав свій перший у житті концепт 😎 Читається зна-а-а-ачно приємніше за ваші std::enable_if_t.

Чому std::same_as, а не std::convertible_to? Бо хочу уникати зайвих implicit castʼів в цьому випадку.

#cpp #Qt #fmtlib
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👀1
#Qt 😢
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍2🤯1💯1
В плюсах доволі нерідко перевантажують метод залежно від того, чи сталим є сам обʼєкт, чи ні. Ну, наприклад, контейнер може оголошувати метод, що повертає ітератор на початок якось так (спрощено):
T* MyContainer::begin();
const T* MyContainer::begin() const;

тобто якщо обʼєкт сталий, то і вказівник повертає такий, через який не можна поміняти те, на що він вказує, а якщо обʼєкт мутабельний, то і вказівник теж.
(Якщо ви не в темі, то отой const, що після дужок, фактично відноситься до неявного this, який потрапляє в метод).

Але в QHash (хеш-мапа в #Qt) оператор для доступу до елемента по ключу, як ми сьогодні з друганами виявили в ході обговорення, якогось хєра оголошений отак:
T& operator[](const Key& key);
const T operator[](const Key& key) const;


На перший погляд, все ок 🙂 Окрім того незначного факту, що константний оператор якогось хєра повертає не const T& (тобто не референс), а const T 🤯 Іншими словами, воно щоразу те значення, яке ви дістаєте з хеш-мапи по ключу для читання, зайвий раз копіює.

Фішка в тому, що ніхто в C++ ніколи не повертає const T, бо це безглуздо. Повертають або просто T, або const T&. Тож я вангую, що це баг, про який компілятор вам ніколи нічого не скаже, бо з його погляду все в порядку.

Зайве нагадування про те, що всі ці бібліотеки, котрими тисячі або навіть мільйони людей користуються, пишуть не якісь суперпрограмісти, а такі ж посередні, як ми всі з вами 😎😂
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6