En este artículo encontrará los diez mejores informes de Andrei Alexandrescu, David Vandervoord, John Kalb y muchos otros.
Características del compilador de C ++, asincronía, subprocesamiento múltiple, concurrencia, modelo de memoria, algoritmos y STL, metaprogramación y reflexión, muchos temas.

Todas estas son las grabaciones de la conferencia C ++ Rusia, la más grande de la historia. Ochocientos participantes, una sala bastante grande, oradores de fama mundial. Ha pasado un año, pero la mayoría de los informes no han perdido su relevancia. Sin embargo, no es sorprendente, solo esos informes llegan a la cima según los participantes.
El formato es el siguiente:
- Video obligatorio de YouTube
- Diapositivas, si hay alguna
- Una descripción detallada del informe en ruso.
- Breve biografía del orador.
Además, tienes los comentarios de Habr para discutir lo que viste. La publicidad en YouTube está desactivada, nadie interferirá. Hay todo para comenzar a mirar ahora mismo.
10. Consejos y trucos para la gestión de la memoria
Alexey Salmin
En 2017, la cuestión de elegir un asignador en C ++ no pierde relevancia. std::pmr
una nueva forma al estándar para elegir un asignador local para contenedores ( std::pmr
), tcmalloc
global y jemalloc
continúan evolucionando, así como las interfaces del núcleo en las que confían. Este informe está dedicado al "piso inferior" del diseño: las características de mmap
y madvise
en el kernel de Linux y el impacto de estas características en el rendimiento de los asignadores.
Sobre el orador
Alexey Salmin se graduó de la MMU NSU, se dedicó a la computación simbólica y al análisis estático, trabajó en Intel en Novosibirsk. Desde 2016, ha estado trabajando en la oficina de Yandex Moscú, desarrollando búsquedas backend en tiempo real.
9. Mejores prácticas para la concurrencia en C ++ moderno
Rainer grimm
Diapositivas
La estandarización de C ++ 11 nos dio un modelo de memoria y multihilo. Hay cosas estándar en la biblioteca como atómicas, hilos, tareas, bloqueos, variables condicionales. El modelo de memoria proporciona garantías para el uso de subprocesos múltiples de estas unidades base.
Han pasado siete años, la práctica del uso seguro de modelos de subprocesamiento múltiple y memoria. En este informe, aprendemos en detalle sobre estas prácticas: sobre las reglas generales de multihilo y las reglas especiales para las primitivas de la biblioteca y el modelo de memoria. Los temas tratados abarcan temas más amplios que solo el lenguaje C ++.
Sobre el orador
Rainer Grimm trabajó como arquitecto, líder de equipo e instructor durante más de 20 años. En su tiempo libre, le gusta escribir artículos sobre C ++, Python y Haskell y hablar en conferencias. Dirige un blog llamado Modern C ++. Actualmente es un orador sobre los temas de C ++ y Python modernos. O'Reilly y Leanpub publican varios de sus libros: "C ++ 11 für Programmierer", "C ++", "C ++ - Standardbiliothek", "The C ++ Standard Library".
8.2020: Una odisea void_t
Ivan Čukić
Diapositivas
C ++ siempre ha tenido un poderoso subconjunto del lenguaje de metaprogramación que permite a los desarrolladores realizar trucos mágicos como la introspección estática para garantizar la ejecución polimórfica sin herencia. El problema es que esta sintaxis es muy pervertida y demasiado detallada, todo esto hace que la metaprogramación sea una tarea bastante impresionante.
Las últimas mejoras en el estándar, combinadas con las nuevas características de C ++ 20, hacen que la metaprogramación sea más fácil y los metaprogramas en sí mismos sean más legibles y comprensibles.
En esta charla, veremos las técnicas modernas de metaprogramación, centrándonos en la void_t
mágica void_t.
Por cierto, en C ++ Rusia 2019 en Moscú, Ivan dará una presentación sobre "Diseño de C ++ solo para movimiento" y también llevará a cabo la capacitación "Programación funcional aplicada en C ++" : está STL lejos de la programación funcional, que son objetos funcionales, std :: invoke y mónadas , mónadas, mónadas. Y algunas mónadas más. El entrenamiento de Ivan no es para el nivel de entrada, será adecuado para los medios que desean abrir más las puertas de la percepción.
Sobre el orador
Ivan trabaja en el departamento de doctorado en informática, Facultad de Matemáticas, Universidad de Belgrado, y se especializa en el diseño de lenguajes de programación. Un colaborador de toda la vida de KDE trabajando en Plasma y marcos de bajo nivel para analizar y gestionar las acciones de los usuarios. Mantenedor KActivities, Contour y Lancelot.
7. Paralelismo moderno de C ++ de la CPU a la GPU
Marca Simon
Diapositivas
La programación paralela se puede utilizar para beneficiarse de arquitecturas heterogéneas y de múltiples núcleos, lo que aumenta significativamente el rendimiento del software. C ++ moderno ha recorrido un largo camino en la simplificación del proceso de programación paralela mediante la introducción de abstracciones de alto y bajo nivel. C ++ 17 ha avanzado aún más y nos ha dado nuevos algoritmos paralelos de alto nivel, y se espera aún más de C ++ 20. En este informe, participaremos en una revisión de las utilidades existentes para organizar el paralelismo y mirar hacia el futuro, donde las GPU y los sistemas heterogéneos recibirán soporte con nuevas características de la biblioteca estándar, y veremos nuevos estándares como SYCL.
Sobre el orador
Simon es un desarrollador de cadenas de herramientas GPGPU con un enfoque en C ++. A los insalubres les encanta la metaprogramación de plantillas y los lados más oscuros del lenguaje. Puede encontrarlo fácilmente en los comentarios en el canal StackOverflow, C ++ en Slack o en las reuniones de la comunidad C ++ Edimburgo, donde es uno de los organizadores. Le gusta hablar sobre cuestiones de formalismo en el lenguaje, patrones pirateados, cerveza, whisky, cine experimental y el trabajo de Carly Rae Jepsen.
6. La memoria es la abstracción perfecta.
Fedor Short
Diapositivas
int* ptr = new int; *ptr = 42; delete ptr;
¿Qué sucede realmente cuando se ejecutan estas 3 líneas de código? Examinaremos el asignador de memoria, el sistema operativo y el hardware moderno para dar una respuesta exhaustiva a esta pregunta.
Sobre el orador
Fedor, graduado de Fiztekh, participó en el comercio de alta frecuencia en la bolsa de valores de Moscú. Trabaja en Yandex, desarrolla un sistema de almacenamiento y procesamiento de datos YT. Enseña C ++ en el primer año de la escuela de análisis de datos.
5.105 Algoritmos STL en menos de una hora
Jonathan boccara
Diapositivas
Todos sabemos que sería bueno conocer los algoritmos STL. Utilizándolos en la construcción de arquitectura, puede hacerlo más expresivo y confiable. A veces es muy significativo y espectacular.
¿Has llegado a la realización de tus algoritmos?
En este informe, verá los 105 algoritmos, incluidos los agregados en los estándares 11 y 17. Pero esto no es solo una enumeración: la esencia del informe es mostrar la presencia en estos algoritmos del sistema, los grupos y patrones en los que están organizados, y cómo se relacionan entre sí.
Este panorama general es la mejor manera de recordarlos a todos y comprenderlos como un conjunto completo de herramientas y formas de hacer que el código sea más expresivo y más confiable.
Sobre el orador
Jonathan Boccara adora C ++ y, en particular, los problemas de escribir un código expresivo comprensible. En particular, es por eso que dirige el blog Fluent C ++. También trabaja como desarrollador senior en Murex, donde maneja enormes bases de código C ++ para su uso en finanzas. Tienen una práctica interesante en la compañía todos los días para hacer informes cortos en el formato "diarios" , que él dirige.
4. Asincronía en la programación.
Ivan Puzyrevsky
En el campo del desarrollo de aplicaciones multiproceso o distribuidas altamente cargadas, uno puede escuchar cada vez más conversaciones sobre el código asincrónico, incluida la especulación sobre la necesidad (falta de necesidad) de tener en cuenta la asincronía en el código, sobre la comprensibilidad (incomprensibilidad) del código asincrónico y su eficiencia (ineficiencia). En este informe, trataremos de profundizar en el área temática: analizaremos lo que es asincronía; cuando surge; cómo afecta el código que escribimos y el lenguaje de programación que usamos. Trataremos de averiguar qué futuros y promesas tienen que ver con eso, hablemos un poco sobre las corutinas y los actores. Afectaremos a JavaScript y a los sistemas operativos. El propósito del informe es hacer que los compromisos que surgen con uno u otro enfoque para el desarrollo de software multiproceso o distribuido sean más explícitos.
Sobre el orador
Ivan comenzó a trabajar en Yandex en 2009 en el departamento de tecnologías lingüísticas en Search. Ahora se dedica al desarrollo de almacenamiento distribuido y sistemas de procesamiento de datos. Graduado del Departamento de Lógica Matemática y Teoría de Algoritmos de la Facultad de Mecánica y Matemáticas de la Universidad Estatal de Moscú. Profesor de ShAD.
3. C ++ hoy: la bestia está de vuelta
Jon kalb
Diapositivas
Este es un informe basado en parte en C ++ Today de O'Reilly: The Beast is Back. En este informe, especularemos un poco por qué los ingenieros que desean escribir código productivo eligen C ++. John presentará la perspectiva histórica de centrarse en C ++, explicará cómo vive la comunidad C ++ en este momento y hacia dónde se dirige el lenguaje y su audiencia. Recientemente, todos se han interesado en un código efectivo, desde fabricantes de teléfonos móviles hasta grandes centros de datos, por lo que C ++ con sus bibliotecas de código abierto se ha convertido nuevamente en un tema candente. Este informe explica claramente por qué la mayoría de los ingenieros eligen C ++ para todo esto. Hay un bosquejo general de C ++ en una escala histórica con explicaciones de los puntos de crecimiento y disminución de la popularidad.
Sobre el orador
John ha estado codificando en C ++ por más de 20 años. Durante este tiempo, logró participar en proyectos C ++ de Amazon, Apple, Dow Chemical, Intuit, Lotus, Microsoft, Netscape, Sun, Yahoo! y en un par de compañías de las que nadie había oído hablar de todos modos. Es el presidente del Comité Directivo de Boost, y también participa en el programa de seguimiento de C ++ en Silicon Valley Code Camp y es uno de los directores de C ++ Now (también conocido como BoostCon). En 2014, recibió el profesional más valioso de Microsoft.
Daveed vandevoorde
Diapositivas
Una vez que el comité de estandarización de C ++ organizó un subgrupo "SG-7", que estudia las posibilidades de implementar la reflexión. Recientemente, este grupo también participó en la metaprogramación y tomó varias decisiones importantes sobre cómo se vería la posible solución. En este informe, veremos el pasado, que nos trajo a una vida así, y discutiremos las posibilidades de soporte nativo para la "metaprogramación reflexiva" en C ++.
Sobre el orador
David es un científico belga que vive con Princeton en los Estados Unidos. Es vicepresidente de ingeniería en Edison Design Group, donde contribuye principalmente a su propia interfaz para el compilador de C ++. Participa activamente en el Comité de Normalización de C ++, donde participa en la evolución del lenguaje central.
1. Inesperado esperado
Andrei Alexandrescu
Escribir código resistente a errores es dolor, dolor en cualquier idioma. Excepciones, aunque son una forma políticamente correcta de señalar errores en C ++, pero en muchas aplicaciones tiene que usar códigos de retorno, por razones relacionadas con la facilidad de comprensión, la facilidad de procesamiento local, la eficiencia del código generado, etc.
En este informe, veremos cómo la teoría y la práctica se pueden combinar para resolver problemas de manejo de errores. El tipo Expected
se puede usar tanto localmente (en el estilo de los códigos de retorno) como centralmente (en el estilo de las excepciones), combinando las ventajas de ambos enfoques.
Sobre el orador
El desarrollador rumano Andrei Alexandrescu es un experto en una amplia gama de temas, incluida la arquitectura e implementación de sistemas de software, el diseño de lenguajes de programación, la arquitectura de bibliotecas, todos los aspectos de C ++ y D, el aprendizaje automático y el análisis de lenguajes naturales. Su enfoque creativo para resolver problemas, el conocimiento más amplio y el carisma hacen de Andrei uno de los oradores más populares del mundo.
Los libros y artículos de Andrei han influido en toda la industria. Es autor de libros superventas como Modern C ++ Design, C ++ Coding Standards (junto con Herb Sutter), The D Programming Language y artículos como Simplify Your Exception-Safe Code - Forever (escrito con Petru Marginean) y Mojo: Move of Joint Objects. Una lista completa de sus obras se puede encontrar aquí .
La próxima conferencia de C ++ Rusia se llevará a cabo del 19 al 20 de abril en Moscú, es decir, muy pronto. Un nuevo programa, nuevos oradores y otro día entero de entrenamiento . El programa se puede ver en el sitio web oficial , las entradas también se pueden comprar allí .