Advanced C++ lectures

Europe/Zurich
40-S2-C01 (CERN)

40-S2-C01

CERN

EVO broadcast
vincenzo innocente (CERN)
Description
This lecture series on advanced C++ features consists of five topics: - To Copy or Not to Copy: A Deeper Look at Values - Fine Points of C++ Pointers: Dumb, Smart, and Smarter - C++ Templates and Template Metaprogramming - C++ Exception Safety: Issues and Best Practices - Exploring Callability: Functions and Function Objects in Modern C++ You can find the detailed objective of each session in the timetable. THE SESSIONS ARE OPEN TO ALL INTERESTED AND WILL BE BROADCAST ON EVO. About the speaker With degrees in both mathematics and computer science, Dr. Brown has been a professional programmer for nearly 40 years. His experience spans both academia and industry: In academia, he founded a Computer Science Department, served as Professor and Department Head, and taught and mentored at all levels. In industry, he managed and mentored programming staff for a computer reseller, and was self-employed as a software consultant and commercial trainer. Dr. Brown has worked for Fermilab since 1996. He is now part of the Computing Division's Future Programs and Experiments Quadrant, specializing in C++ consulting and programming. He participates in the international C++ standardization process and is responsible for several aspects of the forthcoming updated C++ Standard. In addition, he is the Project Editor for the forthcoming C++ Standard on Mathematical Special Functions. About himself, Dr. Brown writes: "Be forewarned: Based on my training and my experience, I hold some rather strong opinions about computer software and programming methodology. While these opinions are not shared by all programmers, they should be! :)"
    • 09:30 12:00
      To Copy or Not to Copy: A Deeper Look at Values in C++ 2h 30m 40-S2-C01

      40-S2-C01

      CERN

      EVO broadcast
      Objectives: * To identify selected opportunities for improved performance in C++ programs. * To learn how to take best advantage of those opportunities in modern standard C++, and to prepare for related new techniques that will become available in the next C++ standard. * To obtain a deeper understanding of the two kinds of values available to C++ programmers.
      Speaker: Walter E Brown
      pdf of slides
    • 09:30 12:00
      Fine Points of C++ Pointers: Dumb, Smart, and Smarter 2h 30m 40-S2-C01

      40-S2-C01

      CERN

      EVO broadcast
      Objectives: * To review traditional C++ pointer manipulation, and pointers' role in dynamic memory management. * To treat dynamic memory management as a special case of the more general resource management problem. * To learn best-practice techniques of resource management in modern standard C++, and to prepare for related new techniques that will become available in the next C++ standard.
      Speaker: Walter E Brown
      pdf of slides
    • 09:30 12:00
      C++ Templates and Template Metaprogramming 2h 30m 40-S2-C01

      40-S2-C01

      CERN

      EVO broadcast
      Objectives: * To introduce and apply the syntax and semantics of C++ function templates and class templates. * To understand common template-based programming practices and techniques, including generic programming, traits, concepts, and adapters. * To understand and apply techniques of C++ template metaprogramming, including compile-time type computations, algorithms, and control structures.
      Speaker: Walter E Brown
      pdf of slides
    • 09:30 12:00
      C++ Exception Safety: Issues and Best Practices 2h 30m 40-S2-A01

      40-S2-A01

      CERN

      EVO broadcast
      Objectives: * To survey common error-handling approaches, with attention to their relative merits and drawbacks. * To obtain a mental model of exception safety, including techniques for reasoning about code in the presence of errors and exceptions. * To understand and apply the characteristics of the exception-handling mechanisms in the C++ core language, including try-blocks, function-try-blocks, throw-expressions, and exception handlers. * To describe exception safety in the C++ standard library. * To promote exception-safe program design and implementation, including best-practice techniques and guidelines for crafting exception-safe, efficient types.
      Speaker: Walter E Brown
      pdf of slides
    • 09:30 12:00
      Exploring Callability: Functions and Function Objects in Modern C++ 2h 30m 40-S2-C01

      40-S2-C01

      CERN

      EVO broadcast
      Objectives: * To review basic function behavior, emphasizing the role of the function call operator. * To understand generalized callable entities (function objects) and their types. * To apply the characteristics of function objects to customize generic algorithms. * To understand and apply basic techniques of currying and other forms of parameter binding available via the facilities of the C++ standard library. * To prepare for related new techniques that will become available in the next C++ standard.
      Speaker: Walter E Brown
      pdf of slides