Конференция для C++ разработчиков
A modern CPU is a combination of many sophisticated features. Among them, the memory hierarchy probably has the most impact on the performance of your programs. Understanding how it works is essentia…
Разработка библиотек — более ответственное дело, чем разработка прикладного программного обеспечения. Разработчик не знает, как именно будет использоваться его библиотека, и должен обращать дополните…
Глубокий рассказ о метапрограммировании в ретроспективе. Обсудим общие подходы в метапрограммировании, а затем перейдём к спискам типов. По шагам напишем небольшую библиотеку для работы со списками т…
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…
Для нашей кодобазы на 2М строк кода с зависимостью от 80 сторонних библиотек (включая MFC) мы долгое время использовали С++11 в Visual Studio 2013 (только под Windows), а теперь используем С++17 в Vi…
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…
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,…
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 e…
Доклад посвящён одному из подходов реализации метаклассов (пропозал p0707 rev3 — последний доступный публично на текущий момент) для тех версий компиляторов, которые не поддерживают ни статической ре…
В докладе будет выполнен краткий обзор экосистемы, сложившейся вокруг языка Rust к настоящему времени. Мы рассмотрим нововведения, которые были внесены Rust-сообществом в современную разработку прогр…
Когда мы работаем с БД, мы зачастую получаем сырые буферы, в то время как хочется получать данные в виде структур, классов и контейнеров C++. Рассказ о проектировании и реализации драйвера PostgreSQ…
В докладе будут рассмотрены способы передачи компилятору информации об используемых данных и действиях над ними: от single compilation unit, link time optimization и static initialization до consteva…
ClickHouse — column-oriented DBMS. Конвейер обработки данных в ClickHouse оперирует кусочками столбцов — массивами однородных данных среднего размера. Для управления ресурсами для этих объектов было …