• Смотреть запись

    Тип доклада: Доклад

    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

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

  • Смотреть запись

    Тип доклада: Доклад

    Text formatting for a future range-based standard library

    Valentin intends to convince you that the combination of ranges with a bit of metaprogramming makes for a very elegant solution to the text formatting problem.

  • Смотреть запись

    Тип доклада: Доклад

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

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

  • Смотреть запись

    Тип доклада: Доклад

    Эволюция метапрограммирования: как правильно работать со списками типов

    Рассказ о метапрограммировании в разные годы его существования, а также о том, как правильно работать со списками типов.

  • Смотреть запись

    Тип доклада: Доклад

    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.

  • Смотреть запись

    Тип доклада: Доклад

    На что нужно обратить внимание при обзоре кода разрабатываемой библиотеки

    В докладе будет дан ряд советов, на что разработчикам библиотек стоит дополнительно обращать внимание на code review.

  • Смотреть запись

    Тип доклада: Доклад

    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++, необходимых для реализации.