Please enable JavaScript to use this page!

AllTalks site logo
🍔

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

What do threads, atomic variables, mutexes, and conditional variables have in common? They 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. What did we get with C++17, what can we hope for with C++20/23? With C++17, most of the standard template library algorithms are available in sequential, parallel, and vectorised variants. With the upcoming standards, we can look forward to executors, transactional memory, significantly improved futures and coroutines. These are just the highlights from the concurrent and parallel perspective. Thus there is hope that in the future C++ abstractions such as executors, transactional memory, futures and coroutines will be used and threads, atomic variables, mutexes and condition variables will be just implementation details.


C++ Russia

52 min

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

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

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

C++ Russia

53 min

Оптимизации времени компиляции. Даем больше информации компилятору

Кирилл Тихонов

В докладе будут рассмотрены способы передачи компилятору информации об используемых данных и действиях над ними: от single compilation unit, link time optimization и static initialization до consteva…

YaTalks

39 min

Сервис на userver: что снаружи и что под капотом

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

Рассказываем о фреймворке Яндекс Go и его внутреннем устройстве. Доклад будет интересен людям, которые хотят разобраться в устройстве корутиновых движков и работе асинхронных фреймворков. Вы узнаете:…

C++ Siberia

51 min

Обзор C++ кода глазами параноика

Филипп Хандельянц

Код языка C++ подобен минному полю. Поэтому качественный внимательный code-review крайне полезен. Этот доклад улучшит ваши навыки в этом нелёгком деле. Мы поговорим о некоторых паттернах ошибок, о ко…

ITeaConf

40 min

В нативный код из уютного мира Java: путешествие туда и обратно

Иван Углянский

Что: интероп между Java и нативным кодом зачем: затем, что зачастую managed кода не хватает, приходится пользоваться нативными библиотеками, написанными (в лучше случае) на C. Как: так про это и вес…

C++ Russia

57 min

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

Сергей Садовников

Доклад посвящён одному из подходов реализации метаклассов (пропозал p0707 rev3 — последний доступный публично на текущий момент) для тех версий компиляторов, которые не поддерживают ни статической ре…

C++ Russia

60 min

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

Михаил Матросов, Александр Воронков

Для нашей кодобазы на 2М строк кода с зависимостью от 80 сторонних библиотек (включая MFC) мы долгое время использовали С++11 в Visual Studio 2013 (только под Windows), а теперь используем С++17 в Vi…

C++ Russia

92 min

C++17 — the biggest traps

Nicolai Josuttis

C++17 is a huge combination of small new features both in the language and the library. These features have more poser but also more traps than you might expect. These traps are not theoretical. They…

C++ Russia

60 min

Initialisation in modern C++

Timur Doumler

Initialisation semantics is widely regarded as one of the most difficult aspects of the C++ language. We have many different kinds of initialisation and many different syntaxes for it, and they inter…

C++ Russia

51 min

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

Алексей Миловидов

ClickHouse — column-oriented DBMS. Конвейер обработки данных в ClickHouse оперирует кусочками столбцов — массивами однородных данных среднего размера. Для управления ресурсами для этих объектов было …

C++ Russia

58 min

ABI compatibility is not a MAJOR problem

Javier García Sogo

Too often, C++ developers tend to ignore ABI compatibility problems and think that incompatibilities are limited to changes in the interface of the library motivated by new features or bugs. However,…

C++ Siberia

87 min

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

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

Каждый новомодный язык программирования норовит заявить о том, что он быстрее, надёжнее и вообще по всем параметрам в несколько раз лучше C++

C++ Siberia

72 min

Управление ресурсами: линейные типы спешат на помощь

Виталий Брагилевский

Как известно, языки программирования слабы в описании того, что нужно делать разработчикам. Они, конечно, пытаются помочь, но не всегда успешно. В результате программы содержат множество ошибок, что …

C++ Russia

51 min

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

Олег Фатхиев

Глубокий рассказ о метапрограммировании в ретроспективе. Обсудим общие подходы в метапрограммировании, а затем перейдём к спискам типов. По шагам напишем небольшую библиотеку для работы со списками т…

DotNext

73 min

A deep dive into a database engine internals

Oren Eini

In this talk, Oren Eini, founder of RavenDB, is going to take apart a database engine on stage. We are going to inspect all the different pieces that make for an industrial-grade database engine, fro…

ITeaConf

25 min

Одновременность: процессы, ракторы, потоки и файберы

Евгений Ращепкин

Мы поговорим о том, как в Ruby работают с параллелизмом и конкурентностью: о давно известных вещах (процессы и потоки) и о новых (ракторы и асинхронные файберы).

ITeaConf

55 min

Is it time to re-sync?

Андрей Печкуров

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

DotNext

71 min

gRPC в .NET — рецепты счастья

Михаил Кузнецов

Массовый переход от монолитов к микросервисам решает одни проблемы, но создаёт другие — взаимодействие сервисов существенно сложнее и дороже, чем взаимодействие объектов в памяти. Частично упростить …

HolyJS

72 min

Cовременный бэкенд для фронтенда на Node.js

Андрей Мелихов

Современный фронтенд — это богатое клиентское приложение, оперирующее развесистым набором данных. Однако, оставаясь в парадигме архитектуры «клиент-сервер», такие приложения всё ещё требуют серверног…