• Смотреть запись
    Доклад

    Move-only C++ design

    This talk will cover an approach to software design that allows only non-copyable move-only types called "linear types". We'll see all the C++ features that make and enforce types like these.

  • Смотреть запись
    Доклад

    Как мы апгрейдили компилятор и поддерживали кроссплатформенность

    Мы долгое время использовали С++11 в Visual Studio 2013 (только под Windows), а теперь используем С++17 в Visual Studio 2017 (под Windows) и GCC 7.3 (под Linux). Расскажем, как мы справились с основными проблемами, с которыми пришлось столкнуться в процессе этого перехода.

  • Смотреть запись
    Доклад

    Higher-order functions and function_ref

    We're going to see examples of how higher-order functions can be used in practice to increase the quality of production code and the productivity of developers. A new abstraction proposed to the Standard Library for C++20, function_ref, will also be covered and compared to other techniques for the implementation of higher-order functions.

  • Смотреть запись
    Доклад

    Рецепты использования умных указателей

    Целевая аудитория доклада — разработчики С++, уже имеющие представление о базовых возможностях стандартных умных указателей. Из этого доклада они узнают ряд полезных приёмов использования как стандартных, так и пользовательских умных указателей.

  • Смотреть запись
    Доклад

    Modern C++ allocators

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

  • Смотреть запись
    Доклад

    Монадические парсеры

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

  • Смотреть запись
    Доклад

    The dawn of a new error

    This talk will give you a solid idea of which error handling strategy to use when, what's coming next, and how to approach code now that will play nicely in that possible future.

  • Смотреть запись
    Доклад

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

    Рассказ о проектировании и реализации драйвера PostgreSQL с человеческим интерфейсом с применением почти всех доступных на данный момент языковых средств C++17.

  • Смотреть запись
    Доклад

    Know your hardware: CPU memory hierarchy

    The talk provides an overview of the structure and algorithms of the memory hierarchy in a modern CPU.

  • Смотреть запись
    Доклад

    The hitchhiker's guide to faster builds

    This talk 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.

  • Смотреть запись
    Доклад

    ABI compatibility is not a MAJOR problem

    Javier intends to make clear the difference between API and ABI, source and binary compatibility. He'll point out the extreme relevance that ABI compatibility has for library developers and give examples of things that affect the ABI and some techniques to minimize that pain.

  • Смотреть запись
    Доклад

    Initialisation in modern C++

    In this talk, we will discuss the past, present, and future of initialisation in C++, the different types of initialisation and syntaxes for them, and how to use them correctly.

  • Смотреть запись
    Доклад

    Метаклассы в C++17: фантастика? Реальность!

    Сергей расскажет, как именно поддержку метаклассов можно реализовать в виде сторонней утилиты (на базе clang frontend) и что можно/нужно сделать для того, чтобы интегрировать результаты работы этой утилиты в собственный код.

  • Смотреть запись
    Доклад

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

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

  • Смотреть запись
    Доклад

    Postmodern immutable data structures

    We will talk about the architectural benefits of immutability and show how a very efficient and powerful persistent vector type can be built using state-of-the-art structures (Relaxed Radix Balanced Trees). We will also show an example application (a text editor) built using the architectural style proposed here. Not only is its code extremely simple, it outperforms most similar programs. Don't believe it? Come and see!

  • Смотреть запись
    Доклад

    Concurrency and parallelism in C++17 and C++20/23

    Threads, atomic variables, mutexes, and conditional variables are the basic building blocks of any concurrent application in C++, which are a big challenge even for the experienced C++ programmers. This massively changed with C++17 and even more with C++20/23. Let's discuss what did we get with C++17 and what can we hope for with C++20/23.

  • Смотреть запись
    Доклад

    Реактивный C++

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

  • Смотреть запись
    Доклад

    Асинхронная разработка на C++

    Павел расскажет о возможностях асинхронного выполнения задач, которые предоставляет стандартная библиотека C++ сейчас и планируется добавить в будущем, о concurrency::task из PPL как иллюстрации этого и о том, как облегчает написание и понимание написанного кода использование корутин.

  • Смотреть запись
    Доклад

    C++17 — the biggest traps

    This talk will list and discuss C++17 traps, explain the reasons for the underlying design, and give guidance how to deal with them. As a side effect you will learn a lot about some cool new features of C++17.

    • Nicolai Josuttis

      Компания: Автор книг «The C++ Standard Library» и «C++ Templates»

  • Смотреть запись
    Доклад

    Не слишком глупые указатели в ClickHouse

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