• Moving Beyond "std::cout"

    IIT -- 565 West Adams Street (Morris Hall, 10th Floor)

    The typical "Hello World" example we see in C++ is #include < iostream > using namespace std; int main() { cout << "Hello World" << endl; } Which just leaves the student with questions about namespaces, cout and endl! What are these constructs for? What do they mean? What do they DO? Are there alternatives that give us cleaner, more flexible code? At what cost? Can this even change how we teach C++? We'll discuss some alternatives and the impact they have on our code, and possibly reconsider what our new defaults should be. Jason Turner has 2 decades of C++ experience and is a regular conference speaker, developer, and trainer. He is host of the YouTube channel C++ Weekly and co-host of CppCast, the first podcast for C++ developers. Food and drinks will be generously provided by Transmarket Group. The event will take place at IIT, at 565 West Adams Street, Chicago, in Morris Hall, which is on the 10th floor. When you enter the building, take the elevators to the left up to the 10th floor.

    2
  • The Many Variants of Variant

    TechNexus

    Variant is a discriminated union. It has been in Boost since 2004. A different variant has been added to C++17. What makes it so hard and controversial to design variant? This talk will explore the various goals, considerations and tradeoffs the C++ Committee made for std::variant. The audience will also participate in brainstorming to see if their design would have gone in a different direction. About the speaker: Back when Nevin Liber was working at Bell Labs in Naperville, a friend of his from Apple called him and asked “What do you know about C++? You folks invented it!” That was enough to get a relatively shy junior engineer to go find the local expert so he could go play with it, and the rest is history! Nevin has worked in C++ across various industries and platforms (low-latency, operating systems, embedded and telephony, just to name a few). He has also been a C++ Committee member since 2010 and hosted both the C++ and C standards meetings here in Chicago in 2013. Note: No food or drinks is planned for the event. Please bring your own food and chat with others from 6:00pm to 6:30pm in the dinning area of TechNexus. Important: And we are back to the 12th floor Room CD.

    1
  • C++ Open Mic

    TechNexus

    It is time we hear from the audience. And hence time for an open mic. We will gather and hear from our fellow developers what is cool, exciting, and fun about C++ in their eyes. Pick an idea about C++ that you find interesting and can talk about in 5 to 10 minutes and show us the what, why, when, where, and how. Some possible areas to talk about: * One new feature in the C++ language that you would like to see. * One existing feature in the C++ language or standard library that you would remove or replace. * One existing feature that could be made simpler. * An existing tool that everyone should use. * An existing library that everyone should use. * A new tool or library that would be good to have, and someone should start working on *right* *now*. * A clear method of teaching some particular C++ construct and/or concept. You can choose whatever presentation style you like for this. From some complex slide masterpiece all the way to just standing up and talking like you know what you are doing. If you are up for this, you can contact the hosts to get a presentation slot. Many thanks to TechNexus for providing space this time around. They have been very good in hosting us in previous occasions and have a great space. IMPORTANT NOTE: We are not planning on having food served. Feel free to bring food and eat in the usual first 30 minute chat period (or during the open mic also).

    2
  • What Everyone Should Know About How Amazing Compilers Are (Matt Godbolt)

    We use them every day, but how often do we stop to think about the kinds of amazing things our compilers do for us? Modern compilers are a feat of engineering and in this talk Matt will demonstrate just a few of the very cunning things they do for you. Matt will concentrate on the output of the compiler: the tricks they use to generate efficient, optimized assembler code. Writing clear, readable code that's also efficient hinges on being able to trust your compiler's code generator. By the end of this talk, you'll be be able to read assembly well enough to be able to appreciate your compiler, and have an understanding of what it can - and can't - optimize for you. Matt Godbolt is a C++ programmer and occasional verb. He loves writing efficient code and sharing his passion about how computers work under the hood. An engineer at Coinbase, he has previously worked at a trading firm, on mobile apps at Google, run a C++ tools company and spent more than a decade making console games. When not tinkering on Compiler Explorer, Matt enjoys working on emulators for old 8-bit computer hardware. This is a preview of a keynote Matt will be giving at C++ on Sea in early February. Meeting space is being generously provided by IBM. Note that because of security restrictions people will need to provide full names in Meetup that match a picture ID to be allowed entry. Hence we will be unregistering people who do not have a full name in Meetup. Note that we do not allow recording of meetings, and to stay in the area of the meeting, for security considerations of the companies providing the meeting space.

    6
  • Committee Chat

    IMC Financial Markets (Willis Tower 43rd Floor)

    Panel of C++ committee members discussing the San Diego WG21 meeting. Participants are Dr. Walter E. Brown, Robert Douglas, Hal Finkel, Nevin Liber, Barry Revzin, and Rene Rivera to be moderated by Matt Godbolt We get to hear from the rather numerous C++ Standards Committee fellow programmers that attended the most recent WG21 Stadards meeting in San Diego. Ask them what happened, why it happened, and of course when are we getting all the good stuff. Meeting space and food is being generously provided by IMC. Note that because of security restrictions people will need to prive full names in Meetup that match a picture ID to be allowed entry. Hence we will be unregistering people who do not have a full name in Meetup. Note that we do not allow recording of meetings, and to stay in the area of the meeting, for security considerations of the companies providing the meeting space. Food will be available at the start of the meeting, and the talking should start at 6:30pm.

    2
  • Fastest processing of events: making the infrastructure (Eduardo Madrid)

    Eduardo has been working in the financial technologies area for many years, including automated trading in which performance is important as well as other areas such as an startup for autonomous driving. He likes to teach Modern C++. His hobby is trying to achieve world record performance at practical applications, and he is very vehement that the highest performance can only be achieved in practice with Generic Programming C++, not C, Rust or assembler. We can get a glimpse of his personal projects work through his GitHub (https://github.com/thecppzoo/), old blog https://thecppzoo.blogspot.com/ and his 2016 presentation at CPPCon on the subject of how to apply metaprogramming techniques to implement connectivity to financial exchanges for a medium size automated trading Hedge Fund, and perhaps you may be using his code through open source projects he helps such as Catch2. Eduardo considers Chicago his home city, he has had the pleasure of residing in Chicagoland many years in between stints at New York City and currently resides in Los Angeles. He is very interested in reconnecting with the colleagues in Chicago and is very enthusiastic about the opportunity to meet our group. He wants to show us the design considerations for a library he has been working on for the last two years, which attempts to improve significantly frameworks for event-subscription/publication as for example feeding automated trading execution algorithms and strategies the market messages from exchanges. These techniques are applicable to many areas, including games, implementing language interpreters, emulators. This will be the first public description of this work. He will refer specifically to the options to implement the core of an event publication/subscription mechanism, will tell us about what he consider mistakes in popular libraries such as LBM. There is no need for prior knowledge of his work presented at CPPCon although what he would be showing us is a natural continuation. The level he is targeting is intermediate, that is, how to use some unique features of C++ to achieve more than other languages let you. Disbelief LLC (www.disbelief.com) will be providing space for the meeting. There will also be food and refreshments provided by Peterson Technology Partners (www.ptechpartners.com).

    7
  • HDF5 ♥ C++: Why Nobody Believed Us and Why You Should Reconsider

    This talk is for you if zero or more of the following apply: 1. You have heard about HDF5, and you are intrigued. 2. You are interested in high-performance DAQ, and always wanted a C++ HDF5 SDK that was fit for purpose. 3. A (Python) pickle-like mechanism to serialize C++ objects never gets off your Someday/Maybe list. 4. You are passionate about creating usable C++ language bindings for non-(C++)-native APIs. 5. You are just looking forward to another Chicago C/C++ Users Group meeting. HDF5 has been described as the world's most powerful data container for The Complex, The (Rapidly) Changing, and the Indeterminate. There are bindings for the native HDF5 API in most programming languages and often several high-level APIs. On reflection, C++ stands out as a language where the (published) results to date seem disproportionately modest, given the number of attempts at high-level APIs it's seen and given its importance as a language in the ecosystem. (Hint: It's not C++'s fault.) In this talk, we outline a fresh approach based on five values: parsimony, idiomaticity, openness, performance, and productivity. Departing from a "continuation of C by other means"-mentality and by embracing C++11(+) thinking, we believe to have created a framework that can rival the productivity and convenience of other offers without sacrificing application performance, and to do so while remaining inter-operable with third-party libraries. You be the judge! The HDF Group is a non-profit organization with a mission and a tradition spanning almost three decades. Our mission is to advance state-of-the-art open source data management technologies, to ensure long-term access to the data, and to support our dedicated and diverse user community. We do this by ensuring the creation of high quality software that addresses user needs and takes advantage of innovations in data management. The HDF Group is the developer of HDF5®, a high-performance software library and data format that has been adopted across multiple industries and is the de facto standard in the scientific and research communities. We are grateful to HERE Chicago for hosting the event.

    3
  • C++17 Parallel Algorithms in GCC and Clang (Thomas Rodgers)

    Intel have offered to contribute an implementation of the C++17 parallel algorithms to libstdc++ (GCC) and libc++ (Clang). This talk will cover: * brief introduction to C++17 parallel algorithms and execution policies * overview of Intel's implementation * considerations and changes necessary to integrate a substantial 3rd party contribution like this into a standard library implementation. * support for different execution back ends, tailored to the target platform Thomas has been programming in C++ since 1989 and a member of the C++ Standards Committee since 2013. Thomas has worked in the financial industry since 1996 and currently works for RedHat. Tech Nexus (http://www.technexus.com) will be hosting us at Suite 1200 Conference Room BCD. And Ocient (http://www.ocient.com) will be generously providing food and refreshments. IMPORTANT: There is a registration requirement that you use your real name for the signup and when checking in with security at the entrance. And registration will close the day before to allow for getting the attendance list to TechNexus.

    6
  • C++ Function Templates: How Do They Really Work?

    Tech Nexus / Ocient

    This talk will focus on C++ function templates and such allied topics as instantiation of function template declarations, overload resolution and partial ordering of these instantiated declarations, and instantiation of function template definitions. We'll also look at function template specialization, explaining why to avoid explicit ones, and recommending what to do instead. Finally, time permitting, we'll offer advice for customizing function templates in the standard library, especially in light of recent WG21 developments re customization points. With broad experience in industry, academia, consulting and research, our speaker, Dr. Walter E. Brown, has been a C++ programmer for over thirty-five years. He joined the C++ standards effort in 2000, and has since written over 140 proposal papers. Among numerous other contributions, he is responsible for introducing such now-standard C++ library features as cbegin/cend, common_type, gcd/lcm, and void_t, as well the entirety of the random and ratio headers. He has also significantly impacted such core language features as alias templates, contextual conversions, variable templates, and static_assert. He conceived and served as project editor for the International Standard on Special Mathematical Functions in C++, now part of the cmath header in C++17. When not playing with his grandchildren, Dr. Brown continues as an Emeritus participant in the C++ standards process, with several more proposals under consideration.

    4
  • Computer Science Behind A Modern, Distributed Database

    Tech Nexus / Ocient

    • What we'll do What we see in the modern data store world is a race between different approaches to achieve a distributed and resilient storage of data. Every application needs a stateful layer which holds the data. There are several different necessary components which are anything but trivial to combine, and, of course, even more challenging when attempting to optimize for performance. Over the past years there has been significant progress in both the science and practical implementations of such data stores. In this talk Dan Larkin-York will introduce the audience to some of the challenges, address the difficulties of their interplay, and cover key approaches taken by some of the industry’s leaders (ArangoDB, Cassandra, CockroachDB, MarkLogic, and more). Dan is a C/C++ developer with the ArangoDB core team. He has worked on the storage engines, caching system, and performance testing and optimization. If it involves non-trivial data structures, he’s interested. Tech Nexus (http://www.technexus.com) will be hosting us, and Ocient (http://www.ocient.com) will once again be generously providing food and beer. • What to bring • Important to know

    7