х2019 Autumn2019 Spring2018 Autumn2018 Spring2017 Autumn2017 Spring2017 Winter2016 Autumn2016 Summer20162015

C++ CoreHard Spring 2019 Conference

C++ CoreHard Spring 2019 – очередная конференция для C++ разработчиков.

Организаторами выступает сообщество CoreHard.by , объединяющее не только С++ разработчиков, но и тех, кто интересуется С, ассемблером, промышленными контроллерами и высоконагруженными серверными решениями.

На этот раз конференция пройдет в 2 дня: 24 мая - день мастер-классов, 25 мая - день докладов

Официальные языки конференции: русский, английский

Хотите выступить с докладом? Оставляйте заявку


#CoreHardBy
Билеты
Дата Мастер-класс (день 1) Конференция (день 2) Мастер-класс + конференция (день 1 + день 2)
01.05.2019 - 24.05.2019 400 BYN 270 BYN 620 BYN

Мы следуем Берлинскому кодексу поведения

Выступают

Мастер-классы, 24 мая

  • 9:30 - 10:00

    Регистрация на мастер-классы

  • 10:00 - 14:00

    Шустрый и современный C++

    Антон Полухин

    В любой большой кодовой базе можно встретить куски абсолютно непонятного кода. Как правило такой код пишется чтобы немного выиграть в производительности приложения... и как правило такой код не нужен в принципе, так как оптимизирует не то что нужно, не в том месте где это нужно и не так как надо.
    В ходе мастер класса мы натолкнёмся на особенности аллокаторов, оптимизаторов и имплементаций контейнеров; посмотрим на ассемблерный код; научимся правильно и понятно писать быстрые однопоточные и многопоточные приложения.
    Для курса понадобится всего лишь базовые знания C++ и компилятор с поддержкой C++11 (как минимум Visual Studio 2013, или Clang-3.3, или GCC-4.8).

  • 14:00 - 15:00

    Обед

  • 15:00 - 19:00

    Шустрый и современный C++

    Антон Полухин

    В любой большой кодовой базе можно встретить куски абсолютно непонятного кода. Как правило такой код пишется чтобы немного выиграть в производительности приложения... и как правило такой код не нужен в принципе, так как оптимизирует не то что нужно, не в том месте где это нужно и не так как надо.
    В ходе мастер класса мы натолкнёмся на особенности аллокаторов, оптимизаторов и имплементаций контейнеров; посмотрим на ассемблерный код; научимся правильно и понятно писать быстрые однопоточные и многопоточные приложения.
    Для курса понадобится всего лишь базовые знания C++ и компилятор с поддержкой C++11 (как минимум Visual Studio 2013, или Clang-3.3, или GCC-4.8).

  • 9:30 - 10:00

    Регистрация на мастер-классы

  • 10:00 - 14:00

    Modern C++ idioms [English]

    Mateusz Pusz

    C++ is no longer C with classes and it never was only an Object Oriented language. C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance. Such usage requires a good knowledge of C++ templates and Modern C++ Idioms which are much different from commonly known design patterns popularized by GoF book and invented to handle common use cases in pure OO languages like Java or C#.

    What you will learn: During the workshop, we will refresh and broaden our knowledge about C++ templates and will learn Modern C++ Idioms. Crafting those skills will allow us to build powerful tools that are useful in the everyday work of every C++ developer.

    Experience required: In order to be able to follow the workshop, you should be current with C++ and have some recent experience with writing simple C++ templates. C++11/14 knowledge is suggested but not mandatory.

    Environment: A laptop with a relatively new C++ compiler. It is recommended to have the latest version of one of the compilers (Visual Studio, gcc or clang).

    Language: English.

    Idioms to be covered (plan):
    - Non-Copyable
    - RAII
    - Copy-and-swap
    - Smart Pointer
    - Type Traits
    - Tag dispatch
    - Policy-based design
    - EBO
    - Type Erasure
    - SOO
    - Copy-on-write
    - CRTP
    - Singleton

  • 14:00 - 15:00

    Обед

  • 15:00 - 19:00

    Modern C++ idioms [English]

    Mateusz Pusz

    C++ is no longer C with classes and it never was only an Object Oriented language. C++ is a general-purpose programming language. It has imperative, object-oriented and generic programming features, while also providing facilities for low-level memory manipulation. If used correctly, it provides hard to beat performance. Such usage requires a good knowledge of C++ templates and Modern C++ Idioms which are much different from commonly known design patterns popularized by GoF book and invented to handle common use cases in pure OO languages like Java or C#.

    What you will learn: During the workshop, we will refresh and broaden our knowledge about C++ templates and will learn Modern C++ Idioms. Crafting those skills will allow us to build powerful tools that are useful in the everyday work of every C++ developer.

    Experience required: In order to be able to follow the workshop, you should be current with C++ and have some recent experience with writing simple C++ templates. C++11/14 knowledge is suggested but not mandatory.

    Environment: A laptop with a relatively new C++ compiler. It is recommended to have the latest version of one of the compilers (Visual Studio, gcc or clang).

    Language: English.

    Idioms to be covered (plan):
    - Non-Copyable
    - RAII
    - Copy-and-swap
    - Smart Pointer
    - Type Traits
    - Tag dispatch
    - Policy-based design
    - EBO
    - Type Erasure
    - SOO
    - Copy-on-write
    - CRTP
    - Singleton

  • 9:30 - 10:00

    Регистрация на мастер-классы

  • 10:00 - 14:00

    Continuous integration для C++ разработчика

    Павел Филонов

    А мы построим свой CI с conan и travis
    Вводная
    В головах разработчиков бытует мнение, что их работа заканчивается после того, как они закомитили код, а весь остальной процесс их вовсе не касается. В ответ на этот тезис хорошо подходит цитата Роберта Хайнлайна:
    Любой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, побросать навоз, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать.

    Специализация — это удел насекомых.

    И взамен упомянутого выше устаревшего мнения мы выдвинем свой тезис - тот факт, что код сбирается на машине разработчика не интересует никого! Наша цель - сделать следующий шаг навстречу непрерывной интеграции (CI, англ. Continuous integration) и автоматизировать разрешение зависимостей, сборку и модульное тестирование под все целевые платформы.

    Непрерывная интеграция
    Непрерывной интеграцией называют практику, по которой разработчики периодически (читай ежедневно) вливают результаты своей работы в основную ветку кода. Впервые данная практика была предложена в методе Буча. Позднее в методологии экстремального программирования она обросла автоматическим прогоном модульных тестов. Свой дальнейшее развитие данная практика получила в виде непрерывной доставки (CD, англ. Continuous delivery) - процесс, в ходе которого после прохождения приёмочных тестов автоматически собирается дистрибутив, готовый к отгрузке заказчику. И уже в самом конце можно говорить об непрерывном развертывании (CD, англ. Continuous deployment) в ходе которого, все изменения прошедшие тестирование, автоматически отправляются в продакшн. Если Вы уже запутались, то можете представить себе следующую последовательность:
    1. Continuous integration
    2. Continuous delivery
    3. Continuous deployment
    В рамках данного мастер-класса мы будет говорить об CI применительно к разработке на C++.

    Предварительные требования
    От Вас нужно:
    - умение программировать на C++ (спасибо, Кэп!)
    - laptop c любой ОС
    - один из компиляторов (Visual Studio >= 2015 / g++ >= 5.4 / clang++ >= 3.9 / Xcode >= 8.0)
    - cmake >= 3.6 (нужно понимать синтаксис CMakeLists.txt)
    - git >= 2.10
    - python >= 3.5
    - pip3 >= 9.0
    - учетная запись на github.com
    - учетная запись на travis-ci.org (привязанная к github)
    - учетная запись на appveyor.com (привязанная к github)
    - учетная запись на conan.io
    - учетная запись на digitalocean.com

    Часть первая - github
    В первой части будем предполагать, что вы пишете домашний проект, работаете над Open Source или можете хранить исходные коды на стороннем ресурсе и готовы за это заплатить. Какие задачи Вы научитесь решать:
    - как автоматизировать сборку под Linux и Mac OS с помощью travis-ci
    - как автоматизировать сборку под Windows с помощью appveyor
    - как управлять зависимостями с помощью conan
    - как автоматизировать запуск модульных тестов под все платформы
    - как автоматически собирать с разными конфигурациями и версиями компиляторов
    - как создавать собственные пакеты для conan (первый шаг к CD)

    Часть вторая - self hosted gitlab
    Во второй части мы рассмотрим ситуацию, когда у Вас рабочий проект с закрытым исходным кодом и вы не хотите сильно зависеть от неподконтрольной инфраструктуры (vendor lock). Какие задачи Вы научитесь решать: как быстро развернуть gitlab на digitalocean (DO) как настроить gitlab CI для вашего проекта

    Заключение

  • 14:00 - 15:00

    Обед

  • 15:00 - 19:00

    Continuous integration для C++ разработчика

    Павел Филонов

    А мы построим свой CI с conan и travis
    Вводная
    В головах разработчиков бытует мнение, что их работа заканчивается после того, как они закомитили код, а весь остальной процесс их вовсе не касается. В ответ на этот тезис хорошо подходит цитата Роберта Хайнлайна:
    Любой человек должен уметь менять пеленки, планировать вторжения, резать свиней, конструировать здания, управлять кораблями, писать сонеты, вести бухгалтерию, возводить стены, вправлять кости, облегчать смерть, исполнять приказы, отдавать приказы, сотрудничать, действовать самостоятельно, решать уравнения, анализировать новые проблемы, побросать навоз, программировать компьютеры, вкусно готовить, хорошо сражаться, достойно умирать.

    Специализация — это удел насекомых.

    И взамен упомянутого выше устаревшего мнения мы выдвинем свой тезис - тот факт, что код сбирается на машине разработчика не интересует никого! Наша цель - сделать следующий шаг навстречу непрерывной интеграции (CI, англ. Continuous integration) и автоматизировать разрешение зависимостей, сборку и модульное тестирование под все целевые платформы.

    Непрерывная интеграция
    Непрерывной интеграцией называют практику, по которой разработчики периодически (читай ежедневно) вливают результаты своей работы в основную ветку кода. Впервые данная практика была предложена в методе Буча. Позднее в методологии экстремального программирования она обросла автоматическим прогоном модульных тестов. Свой дальнейшее развитие данная практика получила в виде непрерывной доставки (CD, англ. Continuous delivery) - процесс, в ходе которого после прохождения приёмочных тестов автоматически собирается дистрибутив, готовый к отгрузке заказчику. И уже в самом конце можно говорить об непрерывном развертывании (CD, англ. Continuous deployment) в ходе которого, все изменения прошедшие тестирование, автоматически отправляются в продакшн. Если Вы уже запутались, то можете представить себе следующую последовательность:
    1. Continuous integration
    2. Continuous delivery
    3. Continuous deployment
    В рамках данного мастер-класса мы будет говорить об CI применительно к разработке на C++.

    Предварительные требования
    От Вас нужно:
    - умение программировать на C++ (спасибо, Кэп!)
    - laptop c любой ОС
    - один из компиляторов (Visual Studio >= 2015 / g++ >= 5.4 / clang++ >= 3.9 / Xcode >= 8.0)
    - cmake >= 3.6 (нужно понимать синтаксис CMakeLists.txt)
    - git >= 2.10
    - python >= 3.5
    - pip3 >= 9.0
    - учетная запись на github.com
    - учетная запись на travis-ci.org (привязанная к github)
    - учетная запись на appveyor.com (привязанная к github)
    - учетная запись на conan.io
    - учетная запись на digitalocean.com

    Часть первая - github
    В первой части будем предполагать, что вы пишете домашний проект, работаете над Open Source или можете хранить исходные коды на стороннем ресурсе и готовы за это заплатить. Какие задачи Вы научитесь решать:
    - как автоматизировать сборку под Linux и Mac OS с помощью travis-ci
    - как автоматизировать сборку под Windows с помощью appveyor
    - как управлять зависимостями с помощью conan
    - как автоматизировать запуск модульных тестов под все платформы
    - как автоматически собирать с разными конфигурациями и версиями компиляторов
    - как создавать собственные пакеты для conan (первый шаг к CD)

    Часть вторая - self hosted gitlab
    Во второй части мы рассмотрим ситуацию, когда у Вас рабочий проект с закрытым исходным кодом и вы не хотите сильно зависеть от неподконтрольной инфраструктуры (vendor lock). Какие задачи Вы научитесь решать: как быстро развернуть gitlab на digitalocean (DO) как настроить gitlab CI для вашего проекта

    Заключение

Конференция, 25 мая

  • 9:30 - 10:00

    Регистрация

  • 10:00 - 10:10

    Открытие

  • 10:10 - 11:00

    Implementing Physical Units Library for C++ [English]

    Mateusz Pusz

    This talk will present the current state of my work on designing and implementing Physical Units Library for C++. I will present all the challenges, design tradeoffs, and potential solutions to those problems. During the lecture, we will also see how new C++20 features help to make the library interface easier to use, maintain, and extend. Among others, we will see how we can benefit from class types provided as non-type template parameters, how new class template argument deduction rules simplify the interfaces and the full power of using concepts to constrain template types.

  • 11:10 - 12:00

    Жилье комфорт-класса для акторов и хендлеров

    Максим Хижинский

    За 40 минут мы вместе построим асинхронный мини-фреймворк потоковой обработки запросов. Без asio, без мьютексов, без future/promise и прочих новомодных штучек. "Без" не значит совсем без, - мы реализуем их по-другому, очень просто и, надеюсь, эффективно. Постараемся забыть о потоках, изобретем почти неблокируемый аллокатор, приправим все это планировщиком, - в результате получим апартаменты комфорт-класса.

  • 12:00 - 12:20

    Кофе-пауза

  • 12:20 - 13:10

    Шаблоны C++ и базы данных

    Сергей Федоров

    Рассказ о проектировании и реализации драйвера PostgreSQL с человеческим интерфейсом с применением почти всех доступных на данный момент языковых средств C++17. Когда мы работаем с БД, мы зачастую получаем сырые буферы, в то время как хочется получать данные в виде структур, классов и контейнеров C++. Рассказ о проектировании и реализации драйвера PostgreSQL с человеческим интерфейсом с применением почти всех доступных на данный момент языковых средств C++17. Описанный в докладе подход можно адаптировать практически к любому протоколу уровня приложений.

  • 13:20 - 14:10

    Контроль окружения сборки C++ проектов с помощью Docker

    Павел Филонов

    При сборке C++ проектов под различные компиляторы и операционные системы часто возникает необходимость контролировать окружение (версии компиляторов, ОС и библиотек), в котором происходит сборка проекта. В докладе рассмотрен подход к этой задаче с помощью упаковки сборочного окружения в Docker образы.

  • 14:10 - 15:10

    Обед

  • 15:10 - 16:00

    GPGPU: что это такое и для чего

    Александр Титов

    GPGPU -- это использование графического процессора (GPU) для выполнения общих вычислений, которые обычно проводит центральный процессор (CPU). Благодаря большим вычислительным ресурсам GPU, данный подход позволяет ускорить некоторые приложения в десятки раз по сравнению с традиционным CPU. Принимая во внимание, что GPU есть во множестве современных устройств, данный подход может стать полезных инструментом для программиста, заботящегося о производительности своих программ. Доклад является введением в технологию GPGPU. В ходе презентации, обсуждаются различия между CPU и GPU на аппаратном уровне и объясняется, как эти различия привели к разным моделям программирования этих устройств. Будут рассмотрены классы задач, которые хорошо ускоряются при помощи GPGPU, и когда GPU может оказаться медленнее чем CPU. Доклад не фокусируются на каком-то определенном GPGPU API (OpenCL, CUDA и т.д.) и не требует от слушателей предварительных знаний аппаратуры GPU или CPU.

  • 16:10 - 17:00

    Многопоточность в играх

    Игорь Лобанчиков

    Многопоточность и игры. Прошлое и настоящее: работает -- не трогай.

  • 17:00 - 17:20

    Кофе-пауза

  • 17:20 - 18:10

    Незаменимый С++

    Антон Полухин

    Каждый новомодный язык программирования норовит заявить о том, что он быстрее, надёжнее и вообще по всем параметрам в несколько раз лучше C++. Давайте разберёмся — где правда, а где вымысел. Да начнётся битва между C++ и Asm/Rust/Go/Java/C#... !

  • 18:20 - 19:10

    New C++ features for writing DSLs [English]

    Ivan Čukić

    C++ is not the best language for writing domain-specific languages (DSLs), but it does have a few tricks up its sleeves. Expression templates have been the go-to approach for this for years, but writing them has always been a pain. The recent C++ versions have improved this situation significantly. We'll demonstrate several new C++ features which make writing DSLs borderline fun

  • 19:10 - 19:20

    Закрытие

  • 19:20 - 22:00

    Вечеринка

  • 9:30 - 10:00

    Регистрация

  • 10:00 - 10:10

    Открытие

  • 10:10 - 11:00

    Implementing Physical Units Library for C++ [English]

    Mateusz Pusz

    This talk will present the current state of my work on designing and implementing Physical Units Library for C++. I will present all the challenges, design tradeoffs, and potential solutions to those problems. During the lecture, we will also see how new C++20 features help to make the library interface easier to use, maintain, and extend. Among others, we will see how we can benefit from class types provided as non-type template parameters, how new class template argument deduction rules simplify the interfaces and the full power of using concepts to constrain template types.

  • 11:10 - 12:00

    В поисках ядовитого семени

    Виталий К.

    Многие разработчики ПО полностью доверяют своим привычным средам разработки при создании кода. А может ли компилятор встать против разработчика? Может ли он растоптать вашу репутацию, скомпрометировав компьютеры ваших пользователей? Данная презентация расскажет про то, как это происходит, включая интересные технические детали на основе свежих исследований, включая открытия сделанные в 2019 году.

  • 12:00 - 12:20

    Кофе-пауза

  • 12:20 - 13:10

    Обработка коллекций наизнанку: как применить много функций к одному аргументу

    Вадим Винник

    Современный язык C++ подвергается всё большему влиянию понятий и методов, заимствованных из парадигмы функционального программирования. В этом докладе представлен пример типично функционального решения, пригодного для довольно широкого круга практических задач. В противоположность привычной обработки коллекций (функции fmap, std::transform), где набор значений пропускается через единственную функцию, можно делать наоборот - подать одно значение на коллекцию функций. Есть несколько способов едалать это, один из них подробно описан здесь. Доклад охватывает как математические свойства, так и реализацию на языке C++, выполненную с использованием вариадических шаблонах и метапрограммирования.

  • 13:20 - 14:10

    Update on C++ Core Guidelines Lifetime Analysis [English]

    Gábor Horváth

    This is an update of the Clang-based implementation of Herb Sutter’s Lifetime safety profile for the C++ Core Guidelines, available online at cppx.godbolt.org.

  • 14:10 - 15:10

    Обед

  • 15:10 - 16:00

    Модули в С++ 20: хорошие, плохие и ужасные

    Владислав Чехарев

    В докладе будут освещена тема модулей в С++, которые появятся в 20-ом стандарте. Рассмотрим какие вопросы они призваны решить и как. На примерах разберем, какие есть положительные и отрицательные моменты, а также какие проблемы могут возникнуть и как их можно решить.

  • 16:10 - 17:00

    The Hitchhiker's Guide to Faster Builds [English]

    Виктор Кирилов

    C++ is known for things such as performance, expressiveness, the lack of a standard build system and package management, complexity and long compile times. The inability to iterate quickly is one of the biggest killers of productivity. This talk is aimed at anyone interested in improving the last of these points - it will provide insights into why compilation (and linking) take so long for C++ and will then provide an exhaustive list of techniques and tools to mitigate the problem, such as: - tooling and infrastructure - hardware, build systems, caching, distributed builds, diagnostics of bottlenecks, code hygiene - techniques - unity builds, precompiled headers, linking (static vs shared libraries) - source code modification - the PIMPL idiom, better template use, annotations - modules - what they are, when they are coming to C++ and what becomes obsolete because of them

  • 17:00 - 17:20

    Кофе-пауза

  • 17:20 - 18:10

    Object-Oriented Programming in Modern C++ [English]

    Борислав Станимиров

    Object-oriented programming has been criticized a lot. Every now and then some article or talk appears denouncing it and proclaiming that it's dead. This talk will do the opposite. It defends OOP and presents many modern libraries and concepts to show that it's very much alive and kicking.

  • 18:20 - 19:10

    New C++ features for writing DSLs [English]

    Ivan Čukić

    C++ is not the best language for writing domain-specific languages (DSLs), but it does have a few tricks up its sleeves. Expression templates have been the go-to approach for this for years, but writing them has always been a pain. The recent C++ versions have improved this situation significantly. We'll demonstrate several new C++ features which make writing DSLs borderline fun

  • 19:10 - 19:20

    Закрытие

  • 19:20 - 22:00

    Вечеринка

  • 9:30 - 10:00

    Регистрация

  • 10:00 - 10:10

    Открытие

  • 10:10 - 11:00

    Implementing Physical Units Library for C++ [English]

    Mateusz Pusz

    This talk will present the current state of my work on designing and implementing Physical Units Library for C++. I will present all the challenges, design tradeoffs, and potential solutions to those problems. During the lecture, we will also see how new C++20 features help to make the library interface easier to use, maintain, and extend. Among others, we will see how we can benefit from class types provided as non-type template parameters, how new class template argument deduction rules simplify the interfaces and the full power of using concepts to constrain template types.

  • 11:10 - 12:00

    Не связывайтесь с поддержкой C++ программистов

    Юрий Минаев

    Немного юмористический доклад о перипетиях поддержки C и C++ программистов. На самом деле, конечно, работать с программистами в поддержке интересно и продуктивно. Они не только стек-дамп к письму приложить могут, но ещё и за тебя подумать и подсказать пути решения проблемы. Но есть и обратная сторона. Если у них проблема, то надо быть готовым к потреблению пинт кофе и ящиков печенья. Расскажем об интересном опыте поддержки наших пользователей, использующих анализатор PVS-Studio. Например, как инструмент оказывается в шоке от строковых литералов размером 26 мегабайт

  • 12:00 - 12:20

    Кофе-пауза

  • 12:20 - 13:10

    Раскручиваем стек

    Иван Пономарев

    В докладе речь пойдёт о такой операции, как раскрутка стека вызовов, для чего она нужна и когда происходит. Будет рассказано, что такое стек вызовов и стековый кадр, что такое соглашение вызова. Далее, используя эти знания, на примере операционной системы Linux будут в деталях описаны два алгоритма раскрутки стека, в том числе с использованием отладочной информации в формате DWARF

  • 13:20 - 14:10

    Встраиваем python для появления аналитики в проекте на С++

    Александр Боргардт

    Многие привыкли слышать: "Хотим в проект (на С++) встроить скриптовый язык для простого добавления точек кастомизации проекта". Обычно новые технические запросы обусловлены запросами бизнеса. В моем случае запросом служила необходимость очень быстрого появления аналитики в проекте. Стандартным выбором у С++ разработчиков является скриптовый язык lua, но на мое решение повлияло богатство библиотеки для машинного обучения на python. При интеграции С++ и python возникли проблемы, связанные с размером и сложностью кастамизации run-time python. Как мне удалось совместить в проект С++ и python и с какими проблемами мне пришлось столкнуться -- обо всем этом будет рассказано в моем докладе.

  • 14:10 - 15:10

    Обед

  • 15:10 - 16:00

    Функции обратного вызова в C++

    Виталий Ткаченко

    Функция обратного вызова - это концепция программирования, в которой какой-либо участок исполняемого кода передается в качестве параметра в другой код. Таким образом, некоторая функция может выполнять код, который ей передается в качестве параметра. В C++ имеется множество способов реализации описанной концепции, каждая из которых имеет свои особенности. В докладе я планирую представить обзор различных подходов для реализации функций обратного вызова, проанализировать их достоинства и недостатки и выработать рекомендации для выбора подходящего метода для решения различных задач.

  • 16:10 - 17:00
  • 17:00 - 17:20

    Кофе-пауза

  • 17:20 - 18:10

    CMake-ификация крупных проектов

    Михаил Гельфанд

    Time passes by, projects grow, requirements change. The focus of this talk is on preparing you for tomorrow by taking care of small things today: keeping an eye on physical and logical structure of CMake-based projects and targets, their interdependencies, and how it all should not break your development workflow when done right.

  • 18:20 - 19:10

    New C++ features for writing DSLs [English]

    Ivan Čukić

    C++ is not the best language for writing domain-specific languages (DSLs), but it does have a few tricks up its sleeves. Expression templates have been the go-to approach for this for years, but writing them has always been a pain. The recent C++ versions have improved this situation significantly. We'll demonstrate several new C++ features which make writing DSLs borderline fun

  • 19:10 - 19:20

    Закрытие

  • 19:20 - 22:00

    Вечеринка

Организаторы

  • CoreHard

Партнеры

  • Solarwinds
  • PVS-Studio
  • DPI Solutions

Сообщества-партнеры

  • C++ Russia
  • CppCon Conference
  • Core C++ Conference

Инфопартнеры

  • Wargaming
  • Kaspersky Lab
  • IT-academy
  • Forte Group
  • dev.by
  • Imaguru
  • IBA
  • comaqa.by
  • DPI Metallic
  • Epam
  • itstep.by
  • javaday.by
  • conf.cocoaheads.by
  • ITVDN
  • HotWork
  • avradays.com
  • vse-kursy.by
  • Аргументы и Факты
  • БГУИР
  • afisha.tut.by
  • Relax.by
  • DMK press
  • Luxoft