CppCon2017 icon indicating copy to clipboard operation
CppCon2017 copied to clipboard

Slides and other materials from CppCon 2017

CppCon 2017 Presentation Materials

https://github.com/CppCon/CppCon2017 is the canonical location for presentations and code from CppCon 2017.

For Speakers: Submitting Materials

Index of Materials

Keynotes

  • C++ as a 'Live at Head' Language by Titus Winters
  • Meta - Thoughts on Generative C++ by Herb Sutter
  • What Has My Compiler Done for Me Lately - Unbolting the Compiler's Lid by Matt Godbolt [README]

Presentations

  • 10 Core Guidelines You Need to Start Using Now by Kate Gregory
  • A Not So Complicated Lockfree Queue by Tony Van Eerd
  • A Soupcon of SFINAE by Arthur O'Dwyer
  • A Tour of Deep Learning with C++ by Peter Goldsborough
  • A Type, By Any Other Name by Jon Cohen
  • Allocators, the Good Parts by Pablo Halpern
  • Almost Unlimited Modern C++ in Kernel-Mode Applications by Billy Baker
  • API & ABI Versioning by Mathieu Ropert
  • Building C++ Modules by Boris Kolpackov [README]
  • C++ and Persistent Memory Technologies by Tomasz Kapela
  • C++ Atomics, From Basic to Advanced by Fedor Pikus
  • C++ in Academia by Chuck Allison
  • C++ WinRT and the future of C++ on Windows by Kenny Kerr
  • C++17 Features by Bryce Adelstein Lelbach
  • Class Template Argument Deduction - A New Abstraction by Zhihao Yuan
  • CNL A Compositional Numeric Library by John McFarlane [README]
  • Concurrency, Parallelism and Coroutines by Anthony Williams
  • constexpr ALL the things by Jason Turner and Ben Deane
  • Coroutines What Can't They Do by Toby Allsopp
  • Customizing the Standard Containers by Marshall Clow
  • Design Patterns for Low-Level Real-Time Rendering by Nicolas Guillemot [.pdf] [.pptx]
  • Designing a Feature That Does Not Fit by Patrice Roy
  • Designing a Unified Interface for Execution by Gordon Brown, Michael Wong
  • Driving Into the Future With Modern C++ by Jan Babst
  • dynamic_cast From Scratch by Arthur O'Dwyer
  • EA's Secret Weapon - Packages and Modules by Scott Wardle [.pdf] [.pptx] [README]
  • Effective Qt - 2017 Edition by Giuseppe D'Angelo
  • Eight Ways To Handle Non Blocking Returns by Sergey Ignatchenko
  • Enhanced Support for Value Semantics in C++17 by Michael Park
  • Esoteric Data Structures and Where To Find Them by Allan Deutsch
  • Everything You Ever Wanted to Know about DLLs by James McNellis
  • folly Function - A Non-copyable Alternative to std function by Sven Over [README]
  • Free Your Functions by Klaus Iglberger
  • From Security to Performance to GPU Programming - Exploring Modern Allocators by Sergey Zubkov
  • Function Default Arguments - Slingshot or Shotgun by Michael Price [README]
  • Game Audio Programming in C++ by Guy Somberg
  • Howling at the Moon - Lua for C++ Programmers by Andreas Weis
  • Language Support for Compile-time Reflection by Andrew Sutton
  • Language Support for Metaprogramming in C++ by Andrew Sutton
  • LauncherOne Rocket With C++ Engine by Diego Franco
  • Migrating a C++03 library to C++11 case study, Wt 4 by Roel Standaert
  • Mocking Frameworks Considered Harmful by Peter Sommerlad
  • Optimizations and Debug Quality by Samy Bahra
  • Parallel STL for CPU and GPU by Michael Wong, Gordon Brown, Ruyman Reyes, Christopher Di Bella
  • Postmodern C++ by Tony Van Eerd
  • Practical Techniques for Improving C++ Build Times by Dmitry Panin
  • Programming with C++ Constraints by Walter E Brown
  • Read, Copy, Update... Then What by Fedor Pikus
  • Runtime Polymorphism - Back to the Basics by Louis Dionne
  • Seventeenification by Roland Bock
  • So, You Inherited a Large Code Base by David Sankel [.pdf] [.pptx]
  • The Asynchronous C++ Parallel Programming Model by Hartmut Kaiser
  • The Point of Views - Multidimensional Index Sets by Tobias Fuchs
  • ThinLTO - Building C++ Applications with Scalable Whole Program Optimization by Teresa Johnson
  • Time Travel Debugging by Ken Sykes, Jordi Mola, James McNellis
  • Traveling the Solar System with C++ by Juan Arrieta
  • Type Punning In C++17 - Avoiding Pun-defined Behavior by Scott Schurr
  • Undefined Behavior in 2017 by John Regehr
  • Undefined Behavior is Awesome by Piotr Padlewski
  • Using Functional Programming to build a HTTP routing API by Jeremy Demeule and Quentin Duval
  • Values, Objects, and References, oh my! by Nicole Mazzuca
  • When a Microsecond Is an Eternity by Carl Cook
  • Which Machine am I Coding to by Patrice Roy

Tutorials

  • Boost Your Programs Health With Fibers by David Sackstein [README]
  • C++17 Parallel Algorithm by Dietmar Kühl
  • Higher-order Functions in C++ - Techniques and Applications by Michał Dominiak
  • How to Write a Custom Allocator by Bob Steagall
  • Just Enough x86 Assembler to Be Dangerous by Charles Bailey
  • Make Classes Great Again by Vinnie Falco
  • Practical C++17 by Jason Turner
  • Understanding the Runtime Behaviors of C++ Programs Using uftrace Tool by Honggyu Kim
  • Using Modern CMake Patterns to Enforce a Good Modular Design by Mathieu Ropert

Demos

  • A Modern Formatting Library for C++ by Victor Zverovich
  • Bringing Clang-tidy Magic to Visual Studio C++ Developers by Victor Ciura [README]
  • C++ Development with Visual Studio Code by Rong Lu
  • Compile-time Reflection, Serialization and ORM Examples by Yu Qi
  • Cross-Platform Apps with Djinni by Stephen Spann
  • End-to-end Deadlock Debugging Tools at Facebook by Kenny Yu
  • Fuzz Or Lose by Kostya Serebryany
  • Mix Tests and Production Code With Doctest by Viktor Kirilov
  • MPark.Patterns - Pattern Matching in C++ by Michael Park
  • Naked Coroutines Live by Gor Nishanov
  • New Standards to the Rescue by Anastasia Kazakova
  • Performance Benchmarking with Celero by John Farrier
  • Tools From the C++ Eco-System by Anastasia Kazakova
  • Using IncludeOS to Write Fast and Secure Web Applications by Lukas Bergdoll
  • What's New and Upcoming in Visual Studio 2017 Updates by Steve Carroll and Daniel Moth

Lightning Talks and Lunch Sessions

  • 10 Things Junior C++ Devs Don't Get by Victor Ciura
  • A C++20 Preview - operator˂=˃ by Walter E Brown
  • Datetime Programming for Everyone. Everywhere by Tai Meng
  • DynaMix - A New Take on Polymorphism in C++ by Viktor Kirilov
  • F.21 by Giuseppe D'Angelo
  • Get Productive on Unfamiliar Source Code With Sourcetrail by Eberhard Gräther
  • Making Optional Optional by Roland Bock
  • Quick Bench by Fred Tingaud
  • Refactor or die by Mikhail Matrosov [.pdf] [.pptx]
  • Regular Expressions Redefined in C++ by Hana Dusikova
  • SCM Challenge Unique Words by Arthur O'Dwyer
  • Signed Integers Faster and Correcter by John McFarlane
  • Solving a Bug Via Lateral Thinking by Giuseppe D'Angelo
  • Speeding up Preprocessor by Ivan Sorokin
  • std exchange idioms by Ben Deane
  • The Amazing Disappearing, Reappearing Trigraphs by Paul Hampson
  • The Perils of Implementing Code from PDFs by Ben Combee
  • Universal Memoization Decorator by Victor Komarov
  • Whitespace ≤ Comments « Code by Walter E Brown

Posters

  • A Hybrid Approach to Game Engine Architectures by Allan Deutsch and Aaron Kitchen
  • Best Practices for Constructor Template Argument Deduction by Mike Spertus
  • Datetime Programming For Everyone. Everywhere by Tai Meng
  • End-to-end Deadlock Debugging Tools at Facebook by Kenny Yu
  • Iteration Over the Intersection of N Sets in Linear Time by Andrew Aldwell and Allan Deutsch
  • Simple C++ Micro benchmarks with quick-bench.com by Fred Tingaud
  • smartref - Start using smart references in your code today by Erik Valkering
  • SourceTrail The Navigation System For Software Engineers by Eberhard Gräther
  • Understanding the Runtime Behaviors of C++ Programs Using uftrace Tool by Honggyu Kim and Namhyung Kim