Конференция «C++ Russia» с блинами и матрёшками! Как всегда, лучшие докладчики
со всей страны на два дня. Конференция ориентирована на опытных разработчиков, никаких вводных лекций!
Место проведения: Санкт-Петербург, ул. Кораблестроителей, 14, гостиница Прибалтийская.
В течении года сообщество проводит встречи в разных городах России: Москве, Санкт-Петербурге,
Новосибирске, Екатеринбурге, Нижнем Новгороде, Саратове.
На встречах выступают докладчики из разных городов и стран.
Я расскажу о своём опыте разработки антивирусного движка на C++ в виде разделяемой библиотеки. Уникальной особенностью является отсутствие каких-либо внешних зависимостей (runtime C++ или C). Вся эта связка построена вокруг использования кастомного toolchain'а на GCC для специального таргета, которым собирается libc newlib для этого же таргета, поверх которого собирается libstdc++. Соответственно, разделяемая библиотека собирается через кастомный тулчейн с кастомными libgcc_s, libc, libcstdc++ (изменения только в сборке). Все взаимодействие со средой выполнения осуществляется через ABI разделяемой библиотеки.
Таким образом, внутри библиотеки сохраняется возможность использовать полноценный современный С++ без ограничений (RTTI, exceptions, iostream, etc), что уходит в libstdc++->libc (newlib)| l ibgcc->ABI.
Подобный подход проверялся на тулчейнах GCC/newlib/libstdc++ для Linux, и clang/newlib/libc++ для MacOS.
Доклад может быть интересен тем, кто хочет использовать С++ в разделяемых библиотеках, но не может себе этого позволить из-за внешних зависимостей.
Some time ago, the C++ standardization committee created a subgroup “SG-7” to explore how to add reflection capabilities to the language. More recently, that group has added “metaprogramming” to its plate and made some significant decisions regarding the shape of the eventual solution. In this talk we will look at the past that brought us here and examine a possible path for C++’s first-class support of “reflective metaprogramming”.
This talk will cover why engineers looking for performance choose C++. Jon will present an historical perspective of C++ focusing on what's going on in the C++ community right now and where the language and its user base is heading. With a renewed interest in performance for both data centers and mobile devices, and the success of open source software libraries, C++ is back and it is hot. This talk will explain why C++ is most software engineers' go-to language for performance. You will receive a rough historical sketch that puts C++ in perspective and covers its popularity ups and downs.
This talk is based, in part, on the book "C++ Today: The Beast is Back" published by O'Reilly.
Pairs of iterators are ubiquitous throughout the C++ library. It is generally accepted that combining such a pair into a single entity usually termed Range delivers more concise and readable code. Defining the precise semantics of such Range concept proves surprisingly tricky, however. Theoretical considerations conflict with practical ones. Some design goals are mutually incompatible altogether.
Доклад будет идти о средствах языка C++ и библиотек Boost и STL, а также об архитектурных подходах в построении приложений с графическим интерфейсом пользователя, которые мы применяли в разработке инструмента для создания видео-уроков.
Когда смотришь на шаблоны, рефлексию, генерацию кода на этапе компиляции, метаклассы, возникает ощущение, что C++ поставил себе задачу максимально “спрятать” итоговый код от разработчика. А нетривиальное использование препроцессора (и многочисленные ответвления) может сделать последовательность действий программы очень неочевидной. Конечно, эти подходы избавляют разработчиков от бесконечного copy-paste и повторения похожих частей кодовой базы, но требуют более продвинутой поддержки в инструментах разработки.
Можно ли отлаживать код без непрерывного его перезапуска, без отладчика, да даже без простой компиляции всей кодовой базы? Если ли возможность поиска ошибок в коде, который нельзя собрать или запустить на локальной машине? Есть! Интегрированные среды разработки (IDE) обладают обширными знаниями и пониманием пользовательского кода, и именно они могут предоставить соответствующие инструменты.
В данном докладе будет показано, как можно было бы “отлаживать” макроподстановки, вложенные typedef, понимать типы переменных (которые в современном C++ оказываются зачастую “спрятанными”), отлаживать разные ветки препроцессора или перегрузки операторов, и многое другое с помощью по-настоящему умной IDE. Какие-то из возможностей уже доступны в CLion и ReSharper C++, а какие-то являются просто интересными идеями на будущее, которые было бы интересно обсудить с аудиторией.
Первый день конференции 19 апреля -- это день мастер-классов. Вы можете посетить один четыре мастер-классов на ваш выбор. Обратите внимание: два мастер-класса проходят на английском языке. Мастер-класс это практическое занятие под руководством опытного программиста. Для работы вам понадобится ноутбук, более подробные треования есть в описании каждого мастер-класса. На этот день продаётся отдельный билет.
| Applied functional programming in C++ | Multithreading with modern C++ | Continuous integration для C++ разработчика | Шустрый и современный C++ (Билеты закончились) |
|
|---|---|---|---|---|
| 9:00 - 10:00 | Регистрация на мастер-классы | |||
| 10:00 - 12:00 | Applied functional programming in C++ I | Multithreading with modern C++ I | Continuous integration для C++ разработчика I | Шустрый и современный C++ I |
| 12:00 - 12:45 | Кофе-брейк | |||
| 12:45 - 14:45 | Applied functional programming in C++ II | Multithreading with modern C++ II | Continuous integration для C++ разработчика II | Шустрый и современный C++ II |
| 14:45 - 16:00 | Обед | |||
| 16:00 - 18:00 | Applied functional programming in C++ III | Multithreading with modern C++ III | Continuous integration для C++ разработчика III | Шустрый и современный C++ III |
| 18:00 - 20:00 | Предрегистрация на конференцию | |||
| track a | track b | track c | track d | |
|---|---|---|---|---|
| 10:00 - 12:00 | Daveed VandevoordeReflective Metaprogramming in C++![]() |
|||
| 12:00 - 12:45 | Кофе-брейк | |||
| 12:45 - 13:45 | Ivan Čukić2020: A void_t odyssey![]() |
Сергей ШамбирКогда хорош процедурный C++ | Иван ПузыревскийАсинхронность в программировании | Евгений ЛукьянецСборка в Docker с использованием Conan |
| 13:45 - 14:45 | Dietmar KühlConcept Based Testing![]() |
Андрей КарповЭффективный C++ (Маерс тут ни при чём :) |
Евгений ОхотниковАкторы на C++: стоило ли оно того? | Денис ПанинПрактическое метапрограммирование: пишем гетерогенную хэш-таблицу |
| 14:45 - 16:00 | Обед | |||
| 16:00 - 17:00 | Rainer GrimmBest Practices for Concurrency in Modern C++![]() |
Евгений ЗуевSemantic API for C++ programms | Дмитрий КожевниковПодводные камни CMake и где они обитают | Дмитрий СоколовКодогенерация как рефлексия для бедных |
| 17:00 - 18:00 | Simon BrandModern C++ Parallelism from CPU to GPU![]() |
Алексей МаловОпыт применения современного C++ в разработке desktop-приложений | ||
В этом году наших слушателей ждут
полезные мастерклассы, а для тех,
кто не может приехать на
конференцию, мы как всегда
организовали онлайн трансляцию. Присоединяйтесь!
Как всегда действует студенческая программа.
Для получения скидки пишите на
[email protected]
Посещение основной программы конференции 20-21 апреля
Однодневный интенсив, практика, индивидуальная работа. Необходим ноутбук.
Просмотр любого доклада. Записи докладов доступны в течении двух месяцев.
Горячая пища и общение с докладчиками в неформальной обстановке. 20 апреля в 20.00
| Дата покупки | Входной билет | Мастер-класс | Онлайн |
|---|---|---|---|
| с 01.04.18 по 19.04.18 | 12500 руб. | 11000 руб. | 3000 руб. |