Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга

Смотрите WWDC 2025 вместе с Surf и участвуйте в розыгрыше 🎧

Готовы к WWDC? Подключайтесь к нашей трансляции 9 июня в 20:00 по Москве. В прямом эфире мы вместе с сёрферами разберём главные анонсы и свежие решения Apple. Ожидается много интересного: от революционных обновлений iOS 26 и macOS 26 до новинок в мире ИИ-технологий от Apple.

Присоединяйтесь к нашему обсуждению. На стриме будут Head of Flutter Surf, Евгений Сатуров, и наши опытные iOS-разработчики — Кирилл и Антон. Они поделятся своим экспертным мнением о свежих решениях Apple. Будем активно общаться в чате, делиться впечатлениями и мнениями о презентации.

А чтобы было еще интереснее смотреть, мы разыграем на трансляции AirPods 4. Все подробности об этом здесь: https://surftech.timepad.ru/event/3397366/

Подключайтесь к стримам 9 июня. Запись сохраним:

  • VK Видео: vk.cc/cMuWI5

  • YouTube: vk.cc/cMuWJL

Теги:
+1
Комментарии0

Исследование показало, что искусственный интеллект может создавать смешные интернет-мемы, но самые остроумные шутки по-прежнему придумывают люди. Учёные сравнили мемы, созданные людьми, искусственным интеллектом и в сотрудничестве человека с ИИ. Результаты показали, что у машин есть потенциал, но человеческая интуиция в юморе пока незаменима.

Суть проблемы заключается в понимании границ креативности ИИ. Может ли машина по-настоящему понять культурный контекст, иронию и нюансы, необходимые для качественного юмора? Исследователи из Технологического института KTH, Мюнхенского университета Людвига‑Максимилиана и Дармштадтского технического университета провели масштабный эксперимент для ответа на этот вопрос.

В ходе исследования три группы участников создавали мемы. Первая группа состояла только из людей, вторая использовала языковую модель для генерации мемов, а третья совмещала работу человека и ИИ. Затем почти 100 человек оценивали созданные мемы по креативности, юмору и желанию поделиться. В среднем мемы, полностью созданные ИИ, получили более высокие оценки.

Однако самые смешные и запоминающиеся отдельные мемы были созданы людьми. В то же время, совместная работа человека и ИИ привела к появлению наиболее креативных и виральных мемов. Это говорит о том, что ИИ отлично справляется с генерацией большого количества идей, но человеческое участие необходимо для отбора и доработки лучшего контента.

Теги:
+1
Комментарии2

внезапно пришла идея - кажется витает в воздухе новый путь установки пакетов и вообще библиотек в приложения.

Начну как всегда из далека:
В последнее время, так как вместо человека теперь LLM чаще всего обращается к сайтам и приложениям, становится популярно добавлять специально написанные для llm страницы (как раньше sitemap, только теперь md файлы)

Это даже стало правилом для MCP серверов - например Cline добавляет только те MCP сервера, которые LLM может поставить в one shot или имеют llm-install.md файл.

По сути, кажется это становится файлом установки для llm - то есть, llm, следуя инструкциям этого файла ставит и конфигурирует MCP сервер на компьютере (прям как раньше, люди скачивали и устанавливали на windows).

Уязвимостей тут может быть много (потому что промпт может быть corrupt), но если следить за процессом и обязательно проверять команды исполнения - why not?

А теперь - представляете что можно сделать это для любого пакета и любого языка?

То есть, есть библиотека например для интеграции авторизации. Вместо того, чтобы разворачивать её вручную, автор библиотеки может написать llm-install и агент, имея контекст проекта в котором он работает, может целиком его развернуть!🙌
Креды например строго хранить в отдельном фале, не давать доступ (например использовать cursorignore etc..) и такие пакеты можно интегрировать как клиенту и бекенду!

И тоже самое можно применить и для удаления! И таким образом весь процесс интгерации станет больше как лего plug & play 🤩

Game changer?:)

Теги:
+1
Комментарии0

Как вы оформляете баги?

В каждой компании, где я работал, были свои правила формализации и постановки обнаруженных багов. Чаще всего - никаких правил. Что нашел тестировщик, то отписал в комментарии к задаче (и это еще хорошо!), а иногда просто на созвоне обсудил с разрабом, тот быстро пофиксил и факт найденного бага остался между ними. Для мелких студий так работать, может, и допустимо, но рано или поздно отсутствие элементарного порядка начинает надоедать. И тут появляются вопросы:

  1. Как оформить баг? Комментарий к задаче? Отдельная задача? Чек-лист в описании задачи?

  2. Как отметить баг выполненным? Проверенным? Повторно проявившимся?

  3. Какая система багтрекинга вам показалась наиболее удобной? Jira? Youtrack? Яндекс.Трекер? Битрикс24? Что-то из новомодного импортозамещения?

  4. Какие шаблоны описания бага приняты в вашей компании? Нет правил? Шаг 1 - шаг 2 - шаг 3 - ожидание - реальность? Скриншот со стрелочками? Видеозапись с экрана?

  5. Есть ли какая-то классификация багов? Минор / мажор? Бэк / фронт? Бэклог / критикал?

Очень интересует ваш опыт в данной теме. Буду очень признателен, если поделитесь своими знаниями в комментариях.

Теги:
0
Комментарии0

У ChatGPT появилась память

Сегодня ChatGPT встречает своих пользователей сообщением о том, что у него теперь есть память. Т.е., он теперь помнит содержание чатов.

И в качестве демонстрации своих нынешних способностей он выдал мне характеристику на основе наших с ним чатов.

Надо сказать, довольно занимательное чтение увидеть себя с его стороны.

Теги:
+3
Комментарии3

Представлен ультимативный бесплатный гайд по вайб-кодингу, в котором есть всё. Автор — ведущий инженер Google. Внутри проекта описаны лучшие техники промптинга, готовые шаблоны, фреймворки, сценарии — всё продумано до мелочей. Там нет устаревших советов, всё подогнано под новейшие модели и ИИ-сервисы.

Теги:
+1
Комментарии4

В начале был датасет, и был он в уме дата-инженера, и имя ему было Хаос...

В мире машинного обучения термин «датасет» звучит примерно из каждого утюга, и даже если ваша сфера не ML, вы наверняка догадываетесь: это какой-то набор данных. Вот только какой именно — сильно зависит от задачи. Порой один датасет похож на другой примерно как кактус на ёлку: что-то зелёное и колется.

Часто в начале данных нет вовсе, и их приходится создавать вручную, искать в открытых источниках или генерировать синтетически, а иногда комбинировать подходы. Упорядочить хаос — задача не из лёгких, особенно если вы создаёте кастомный датасет под конкретную модель.

От чего зависит структура датасета? Если коротко: буквально от всего.

Поставленная задача, тип данных, структура, формат аннотаций, объём, качество, наличие разметчиков или доступа к "умным" моделям и даже количество «мусора» — всё это влияет на итоговую структуру. Например, даже для такой относительно несложной задачи, как обучение чатбота для покупок товаров, мы иногда работаем с:

  • Парами «вопрос–ответ». Такой вариант был хорош на раннем этапе разработки.

  • Триплетами (вопрос + хороший и плохой ответ, чтобы модель точно знала, что НЕ нужно отвечать) - такой формат хорошо заходит reasoning-моделям, когда мы ожидаем от модели более сложного поведения и умения задать вопрос, быстро "отсекающий" нерелевантный товар или неважные признаки.

Пользователь: хочу морковь

Ответ A: вам мытую или обычную?
Ответ B: скока вешать в граммах?

Предпочтение: ответ A

Примеры разных типов датасетов

📸 Computer Vision

Датасеты для задач компьютерного зрения. Картинки котиков, людей и машин (ImageNet) и (MS COCO). Учим ИИ отличать милую чихуахуа от маффина. Например, ImageNet содержит более 14 млн размеченных фотографий, а MS COCO — изображения с детальными аннотациями сцен.

🎵 Музыка и рекомендательные системы

Million Song Dataset — метаданные и фичи 1 млн треков.

Новый релиз от Яндекса — YAMBDA на Hugging Face, анонсирован в посте на Хабре. Это 500 млн взаимодействий с музыкальным контентом, включая признаки и флаги «рекомендовано/нет».

Чем он интересен:

  • Использует эмбеддинги вместо аудио

  • Подходит для обучения RecSys моделей в «индустриальных» условиях

  • Поддерживает архитектуры с input context (история прослушиваний)

🩺 Медицина

MIMIC-CXR — крупный публичный датасет рентгеновских снимков грудной клетки с диагнозами и метками. Один из главных бенчмарков в медицинском CV.

Проблемы: сложная лексика, разнообразие патологий, неполные аннотации. Такие датасеты часто требуют пост-обработки, аннотации врачами и серьёзного контроля качества.

📊 Табличные данные для задач логистической регрессии

UCI Adult — классика для бинарной классификации (доход >50K или нет). Здесь встречаются числовые и категориальные признаки. Часто используется для обучения простых моделей и feature engineering.

Именно такие данные лежат в основе скоринговых систем банков. Да-да, когда вы подаёте заявку на ипотеку, зачастую не человек, а модель принимает первичное решение на основе ваших параметров. ИИ тихо решает судьбу вашего жилья и кошелька.

🤖 Робототехника и сенсоры

KITTI Dataset — реальная дорожная обстановка с камеры, лидара и GPS. Используется в задачах:

  • Детекции объектов

  • 3D реконструкции

  • SLAM и навигации

Датасеты для роботов — одни из самых тяжёлых по объёму, синхронизации и сложности синтеза сигналов.

По мере развития технологий модели обретают мультивозможности, и датасеты тоже усложняются…А как же понять, какой датасет подойдёт именно для вашей задачи?

Готовясь к обучению модели, важно помнить: 80% успеха — это грамотный датасет, причём не только по составу данных, но и по их комбинации и оформлению, подходящий под задачу. Гонка за модными тенденциями или применение готовых шаблонов тут вряд ли помогут.

В следующих постах разберу:

  • Можно ли полностью нагенерировать диалоговые датасеты синтетически - умными моделями типа О3 без проверки человеком.

  • Остальные 20% успеха в обучении модели;) Это будет не совсем про ML.

Теги:
+1
Комментарии0

Какую тему для книги можно выбрать в 2025? Современный мир — насыщенный мир. Книг выходит очень много. Как, интересно, можно выбрать тему для книги? От этого зависит конечная аудитория книги всё-таки. Микросервисы? Внедрение зависимостей? Ещё что-нибудь? Я в смятении. А выбирать пора уже. Полгода как прошлая книга вышла...

Теги:
+1
Комментарии1

Привет, меня зовут Александр, я аналитик в Альфа-Банке. Однажды я устал, что на Feature Store, на платформе для дата-инженеров (DE) и дата-саентистов (DS), невозможно ничего найти.

Поиск по контексту отсутствует. Приходится руками шерстить огромное количество ETL-проектов в поисках той самой полезной информации, полагаясь сначала на удачу, а после — на опыт и помощь коллег. 

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

И я сделал MVP с GPT-2: весит около ~400 МБ и, самое главное, не требует регистрации. В статье пошагово описал, как всё прикрутить. Заходите почитать.

Примечание. Для прома MVP, конечно, не прокатит, но после показа решения начали реализовывать решение на OpenSearch.

Теги:
+3
Комментарии1

Huawei Watch 5 — первые часы на новой операционной системе HarmonyOS NEXT. Поддержки Android здесь нет: ни библиотек, ни инструментов, ни привычного ядра. Всё пришлось делать заново — и мы сделали. Теперь 2ГИС показывает маршруты прямо на часах Huawei Watch 5: от прогулки по району до поездки на метро.

Слева — навигация по пешеходному маршруту. Справа — подсказки по маршруту общественного транспорта
Слева — навигация по пешеходному маршруту. Справа — подсказки по маршруту общественного транспорта

Мы написали 2ГИС Компаньон с нуля на arkTS — это компилируемый диалект TypeScript, разработанный при участии Huawei. Забудьте про Java, JS, HTML и CSS — он заменил сразу несколько языков, которые раньше требовались для разработки на старых часах.

Работали параллельно с разработкой самой ОС, прошивок, IDE (DevEco Studio) и фреймворков. Всё было в бете — мы тестировали одними из первых. Stack Overflow и блоги молчали, а ИИ-помощники разводили руками. Так бывает, когда заходишь в проект на новом стеке. К счастью, команда Huawei были на связи. Мы давали обратную связь, задавали вопросы, а они быстро реагировали и помогали решать технические сложности. Вместе мы прошли путь от «ничего не работает» до полноценной навигации прямо на запястье.

Подробнее о том, что теперь умеет приложение на новых часах — в «Доставили».

Теги:
+4
Комментарии3

Как строить систему отчетности? Расскажет Рома Бунин! 

В мае в гости к аналитическому комьюнити Garage Eight заглянул Рома Бунин, специалист по визуализации данных и развитию BI-систем, Head of Data Nebius Group, а также автор канала Reveal the Data. На встрече он рассказал про Dashboard Map. Этот фреймворк позволяет заранее оценить, какая аналитика нужна внутри команды, и подготовить инструменты для разных типов задач. 

Лекцию записали и теперь делимся с вами!

Из нее узнаете: 
> зачем нужно заранее проектировать архитектуру системы дашбордов;
> из каких шагов состоит проектирование; 
> как заполнять Dashboard Map;
> как провести сессию проектирования;
> что делать после сессии;
> примеры систем дашбордов.

Смотрите на удобной платформе: YouTube | VK Видео

Теги:
0
Комментарии0

Чек-лист: как настроить мониторинг, который предупредит сбой до его возникновения

Шаг 1. Составьте карту сервисов и зависимостей

  • Что включить: микросервисы, БД, очереди (Kafka, RabbitMQ), сторонние API (платежки, SMS).

  • Зачем: чтобы понять, как падение одного компонента влияет на систему.

«Падение Redis "уронит" кэширование и увеличит нагрузку на БД».

Шаг 2. Разделите симптомы проблем: срочные vs важные

Срочные (реагировать немедленно!)

  • БД: connections > 90%, replica lag > 10 сек.

  • Платежный шлюз: 5xx errors > 1% за 5 мин, latency p99 > 3 сек.

  • Kubernetes: pod restarts > 5/час, node CPU > 95%.

Инструменты: Grafana OnCall, PagerDuty.

Важные (требуют анализа)

  • Рост ошибок 4xx > 5% за сутки.

  • Увеличение времени ответа API на > 20% за неделю.

  • Падение успешных сессий (Google Analytics).

Решение: алерты в Slack/Email.

Шаг 3. Автоматизируйте рутину

Сбор логов: стек EFK (Elastic + Fluentd + Kibana).

Kubernetes:

  • Liveness-пробы → авто-перезапуск пода при сбое.

  • Readiness-пробы → остановка трафика на проблемный под.

Redis: настройка политик очистки кэша.

Совет для ленивых:

«Используйте Coroot — он автоматически строит карту зависимостей и предлагает алерты»

Шаг 4. Тестируйте устойчивость

Chaos Engineering раз в месяц:

  • Отключайте случайные ноды в кластере.

  • Эмулируйте нагрузку в 10 раз выше обычной (Locust).

«Мониторинг должен не только сообщать о проблемах, но и подсказывать, что делать».

Теги:
+1
Комментарии0

Pull/Merge Request для согласования требований и документации

Аналитики и технические писатели, признайтесь: сколько раз вы теряли время, сравнивая версии документов в MS Word? Компьютер тормозит, красные и синие правки сливаются в кашу, а поиск согласования в бесконечной переписке или Confluence превращается в квест.

Есть решение — берем механизм Pull/Merge Request и применяем его к текстам! Что получаем:

  • Все правки в одном месте. Редактируйте несколько документов сразу и смотрите изменения в едином окне. Забудьте про переключение между файлами и версиями!

  • Подробная подсветка. Все правки видны построчно или в удобном визуальном редакторе — сразу ясно, что добавили, убрали или исправили.

  • Простое согласование. Назначайте проверяющих и получайте их апрувы прямо в интерфейсе. Никаких "ок" в письмах или мессенджерах!

  • Полная история. Все комментарии, согласования и версии сохраняются. В любой момент можно вернуться и проверить, кто, что и когда утвердил.

  • Экономия времени. Gramax объединяет редактирование, ревью и согласование в одном месте — больше не нужно жонглировать Word, Confluence и почтой.

И все это в Gramax! Как всегда: бесплатно и с открытым исходным кодом.
Все как в коде, только проще.

Теги:
+1
Комментарии0

Ближайшие события

Отечественный мессенджер в России

VK выводит на рынок "полностью российский мессенджер", который предполагаеться интегрировать с "Госуслугами" Об этом доложил президенту РФ Путину глава Минцифры Шадаев на совещании с членами правительства в среду, 4 июня.

Президент Путин указал на "чрезвычайную важность" перевода росиийских банков и госорганов на данный месседжер. В свою очередь министр Шадаев пояснил - Минцифры внедряя национальный месседжер следует опыту азиатских стран, таких как Япония, Южная Корея, Вьетнам, Китай.

P.S. От своих оценочных суждений при подаче новости постарался максимально воздержаться.

Теги:
+1
Комментарии5

Подключайтесь к вебинару про производительность 1С 🔍

Ровно через час, в 12:00 мск, встретимся, чтобы обсудить тест Гилева и другие методики тестирования 1С. Ответим на главные вопросы:

✔️ как выбрать подходящий метод,

✔️ как настроить тестовое окружение,

✔️ как проанализировать результаты и провести оптимизацию на основе полученных данных.

Вебинар будет полезен администраторам 1С и системным администраторам, руководителям IT-отделов, разработчикам, а также специалистам по производительности. 

Подключайтесь к трансляции:
➡️ в VK
➡️ на YouTube

Теги:
+2
Комментарии0

Обновляем платформу SourceCraft и открываем доступ к ней для всех разработчиков

Сегодня Yandex B2B Tech открыла публичный доступ к платформе для разработки SourceCraft и представила её новые возможности. В платформу интегрированы инструменты безопасности, которые обеспечат защищённую разработку программных продуктов. А в ИИ‑помощнике SourceCraft Code Assistant появился чат‑режим, что увеличит скорость и эффективность разработки.

Удобство командной работы повысится за счёт бранч‑ и ревью‑политик, встроенных в интерфейс, а также аутентификации через SSO. Также появляется возможность зеркалирования репозиториев с GitHub и публичный API.

Инструменты безопасности

На платформе стали доступны инструменты безопасной разработки: сканер секретов в коде и анализ зависимостей в кодовой базе.

По данным исследования аналитиков Forrester интеграция инструментов безопасности в разработку на 81% снижает трудозатраты на ИБ‑поддержку всего проекта.

Чат‑режим в SourceCraft Code Assistant

ИИ‑помощником SourceCraft Code Assistant пользуются десятки тысяч разработчиков. Теперь в нём доступен чат‑режим, интегрированный непосредственно в среду разработки. В диалоговом режиме на естественном языке можно задать вопрос ИИ‑ассистенту, сгенерировать код, юнит‑тесты, документацию. Это ускорит поиск необходимой информации и оценку предлагаемых решений. Функциональность доступна в плагинах для VSCode и IDE от JetBrains.

Зеркалирование и бесшовная миграция

Миграция проектов с GitHub становится бесшовной — кроме кода переносятся Issues, PRs, Labels, Milestones, Comments. Также можно выбрать ветки для зеркалирования — непрерывной синхронизации кода.

Также появился федеративный доступ к платформе для компаний — авторизация через SSO.

Публичный API

Благодаря появлению публичного API платформа становится расширяемой. Пользователь сможет взаимодействовать с SourceCraft и обеспечивать автоматизацию и интеграцию с другими приложениями. Первая версия публичного API доступна для управления задачами, список будет пополняться.

Правила работы с ИТ‑проектами

В интерфейсе платформы появились бранч‑ и ревью‑политики — правила работы с ветками и проверками кода, которые интегрируются в систему контроля версий и процессы CI/CD.

Опенсорс

Появился анонимный доступ к публичным репозиториям платформы. Пользователи SourceCraft смогут создавать независимые копии репозиториев (forks) опенсорс‑проектов. Это позволит вносить персональные изменения, не затрагивая напрямую исходную кодовую базу. При этом копия сохраняет связь с оригиналом для получения обновлений.

Удобство работы с кодом

Интерфейс платформы теперь позволяет просматривать структуру файлов для шести языков программирования: Python, C++, Java, Go, TypeScript и JavaScript. Функциональность навигации по коду стала умнее и аналогично теперь поддерживает 6 языков.

Автоматизация CI/CD‑процессов

Среди обновлений, связанных со сборкой и развертыванием кода, появились self‑hosted runners — теперь можно запускать задачи как на виртуальных машинах Yandex Cloud, так и в своём окружении. Также появились flavours — теги для пользовательских задач, за счёт которых можно выбирать, где запускать задачу. Помимо этого в интерфейсе платформы появилась возможность не только разрабатывать, но сразу публиковать мобильные приложения в App Store, Google Play, RuStore, Huawei AppGalery.

Packages

Появилась возможность создавать и использовать собственные программные пакеты популярных форматов: наборы кода, библиотек, модулей или компонентов. Разработчик сможет хранить их в персональном облаке, привязанном к организации SourceCraft, и использовать в своих проектах. Packages также интегрированы с CI/CD платформы.

Вход в SourceCraft реализован через Яндекс ID аккаунт. Зайти на обновлённую платформу можно на сайте SourceCraft.

Теги:
+12
Комментарии0

Тест на собеседовании на должность проектировщика интерфейсов

Ставим перед соискателем большую коробку с конструктором типа Лего. Задача: собрать его за час. А дальше наблюдать.

  1. В коробке должно быть шесть пакетов и инструкция по сборке. В инструкции должно быть указано, что для успешной сборки понадобится семь пакетов. Если соискатель заметит это перед тем, как распечатает первый пакет, и укажет на невыполнимость задачи — он молодец.

  2. Конструктор должно быть физически невозможно собрать за час. Первый пакет должен занимать в среднем пятнадцать минут, а остальные пакеты должны быть примерно такого же объёма и сложности и это должно быть заметно. Если соискатель, собрав первый пакет за пятнадцать минут, укажет на невыполнимость задачи — он молодец.

Это бы отсеяло тех кандидатов, которые готовы браться за работу, не разобравшись с задачей и её выполнимостью. В нашей профессии такой подход чреват лавинообразными правками после бесполезной работы, а также быстрым выгоранием.

К сожалению, этот тест — плод моей фантазии развлекательного характера. Представляете, сколько это мороки — подготавливать и упаковывать в пакеты подобные наборы для каждого нового соискателя? Не, проще пообщаться. Но идея не даёт мне покоя :)

А вот ещё один теоретический способ, с помощью которого я бы проверял квалификацию соискателей. Там про цепляние к мелочам.

Теги:
+8
Комментарии5

Спасибо друзья!

🚀 +32 подписчика в наш телеграм канал, это значит вам понравилась моя статья в рамках челленджа 12 проектов за 12 месяцев, которую я вчера опубликовал.

Кто еще не видел - оцените

Теги:
-1
Комментарии0

На днях в офисе я столкнулась с коллегами из направления системного программирования в «Криптоните». Они пишут на С++ — а ошибки на этом языке у нас ещё не было!

Поэтому я попросила их придумать код с ошибкой специально для Хабра — и вот что получилось!

Итак, есть ли в этом коде проблема кроме narrowing conversion? Ждём ваши варианты в комментариях.

#include <cstdint>
#include <vector>

struct Type
{
    Type(uint16_t, uint32_t = {}) 
    {}
};

int main()
{
    std::vector<Type> vector;
    std::uint32_t object_id{};

    // Есть предупреждение о narrowing conversion
    vector.insert(vector.begin(), {0, object_id}); 

    // Нет narrowing conversion
    vector.push_back({0, object_id}); 

    // Нет narrowing conversion
    vector.insert(vector.begin(), Type{0, object_id}); 
}

АККУРАТНО, ДАЛЬШЕ СПОЙЛЕР!

Проблема в том, что в строке

 vector.insert(vector.begin(), {0, object_id});

в вектор вставляется 2 элемента типа Type, а не один, как ожидает программист.

Причина в том, что метод insert у вектора имеет перегрузку (номер 5), которая вторым параметром принимает std::initializer_list. А компилятор, видя фигурные скобки в коде, в первую очередь пытается создать объект такого типа.

И тут ему это удается, потому что у конструктора Type второй параметр имеет значение по умолчанию, следовательно, Type умеет создаваться, если в конструктор передали только один аргумент. В итоге компилятор успешно создает std::initializer_list с двумя элементами типа Type.

Так как создание std::initializer_list выполняется с использованием uniform initialization, то компилятор следит за корректностью преобразований. В примере объект типа std::uint32_t передается в конструктор Type, который принимает первым параметром std::uint16_t. То есть, возникает риск потери точности (32 бита не могут поместиться в 16 бит).

Об этом компилятор и предупреждает. Вот упрощенный пример, где видим то же самое предупреждение.

Может возникнуть вопрос, почему создание Type от 0 не вызывает предупреждение, ведь 0 - это int, а он, скорее всего 32 бита и тоже не помещается в 16 бит. Но тут литерал. Компилятор видит, что 0 вмещается в 16 бит и не предупреждает. Но если поместить int в переменную, то также возникает предупреждение.

Теги:
+3
Комментарии0

ГК InfoWatch — победитель премии CIPR Digital 2025 в номинации «Легенды инфобеза»

Рады поделиться новостью — проект ГК InfoWatch стал победителем премии CIPR Digital в номинации «Легенды инфобеза». Итоги подвели на ЦИПР-2025.

Для участия в премии компания представила кейс с крупным промышленным предприятием, где реализована интеллектуальная система защиты персональных данных сотрудников на базе DLP-системы InfoWatch Traffic Monitor. В основе проекта — новый способ автоматического анализа выгрузок из баз данных, который запатентован в 2024 году.

Разбор представленного на премию кейса — в нашем блоге на Хабре.

Теги:
0
Комментарии0