20 февраля в офисе Mail.ru Group состоится встреча С++ User Group. На мероприятии расскажут про инновационные подходы к IPC в лице Mojo, являющегося частью фреймворка Chromium, — Mojo позволяет удобно строить IPC между процессами. И даже теми, в которых запущены приложения на других языках: C#/Java и др. Затем мы послушаем истории про std::initializer_list и как с ними непросто жить. А в заключение узнаем, что нам потребовалось почти 20 лет, чтобы научиться нормально объявлять константы.
Описание докладов, ссылка на регистрацию и все детали по митапу под катом. Регистрируйтесь сами и приглашайте друзей!
Программа:
Mojo (IPC от Chromium) в сторонних приложениях
Илья Санеев, руководитель C++ разработки, Mail.ru Group и Алексей Кузнецов, C++ программист, Mail.ru GroupMojo — IPC кросс-платформенный инструмент (набор библиотек) в составе проекта Chromium. Mojo реализует передачу и получение сообщений между процессами и поддерживает такие языки как C++, Java, JavaScript. Формат сообщений описывается языком генерации интерфейсов (MIDL) — The mojom Interface Definition Language.
Несмотря на то что Mojo не позиционируется как отдельное решение для организации IPC, есть возможность применять его в сторонних, не связанных с Chromium, приложениях. А это позволяет рассмотреть Mojo как отдельный фреймворк и показать его применимость.
std::initializer_list — былинный отказ проектирования
Павел Новиков, Align TechnologyНа поверхности всё выглядит достаточно просто: std::initializer_list — это «лёгкая обёртка» массива элементов, встроенная в язык C++. Но чем глубже копаешь, тем больше кажется, что здесь что-то не так…
Universal initialization, auto, конструкторы, инициализация агрегатных типов с помощью скобок () — попробуем разобраться в деталях всего этого и понять, как нам с этим жить.
Спецификаторы, квалификаторы и шаблоны
Михаил Матросов, Align TechnologyУже в С++98 у нас были const, volatile, static, extern, inline и, конечно, шаблоны. В С++11 добавились thread_local, constexpr, а также extern для шаблонов. В С++14 — шаблоны переменных, в С++17 — inline переменные. В С++20 обещают подвезти consteval и constinit. А вы когда-нибудь задумывались, что такое template static inline thread_local constexpr const volatile переменная?
В докладе Михаил попытается разложить по полочкам всё это многообразие ключевых слов. Вспомним про linkage, storage duration и инстанциации шаблонов (и что изменится с приходом модулей в С++20). Разберемся, какая связь между template и inline, между static и constexpr. Поймем, зачем нам extern, когда у нас есть inline. И осознаем, что нам потребовалось почти 20 лет, чтобы научиться нормально объявлять константы.
Регистрация на митап по ссылке. Для тех, кто не сможет присутствовать лично, будет организована трансляция на нашем канале.
MooNDeaR
Если коротко — это buzzword :) Потому что половиная из этих слов исключают другую половину :)