• Meetings Without Beer, Part 2: A Practical Approach to Error Handling

    This is our second on-line event, as
    in-person meetings, of the size that we
    usually have, continue to be banned.

    One advantage, however, of on-line
    events, is that you can have speakers
    from all over the world. Our next
    speaker, Arno Schödl, Ph.D. -- the
    founder, and CTO, of think-cell -- lives
    and works in Berlin, Germany. Arno is
    responsible for the design, architecture
    and development of all of think-cell's
    software products. He oversees
    think-cell's R&D team, Quality Assurance
    and Customer Care. Before founding
    think-cell, Arno worked at Microsoft
    Research and McKinsey. Arno studied
    computer science and management and holds
    a Ph.D. from the Georgia Institute of
    Technology with a specialization in
    Computer Graphics.

    Here is Arno's description of the talk
    that he will be giving to us on Tuesday
    evening, April 6, "A Practical Approach
    to Error Handling":

    Every program may encounter errors, some
    originating from internal bugs in the
    program, others coming from the
    environment the program is operating
    in. Ignoring all errors will make the
    program utterly unreliable, while
    treating every conceivable one introduces
    lots of extra complexity with little
    benefit. At think-cell, we have been
    using and refining our own principled
    approach to error handling, which we have
    not seen elsewhere. This lecture teaches
    our method, so that you in your next
    project, too, can write more reliable
    software with less effort.

    The URL for the videoconference will be
    If you are interesting in attending, please
    register here on meetup.com. You will be
    able to attend the videoconference even
    if you don't register on meetup.com, as
    long as you have the above URL; but we
    need to know how many people to expect,
    so please do register before attending.

    Because this is an on-line event, there
    is virtually no limit on the number of
    people who may attend. We encourage you
    to bring guests to watch the talk with
    you. Unfortunately, until our in-person
    events are allowed to resume, you will be
    responsible for providing your own beer.

  • Meetings Without Beer

    Online event

    It has been almost a year since the
    Chicago C/C++ Users' Group has had a
    meeting. That is because, for most of the
    past year, in-person meetings of the size
    that we tend to have, have been banned;
    and for all we know, it may be another
    year before the ban is lifted. So we are
    going to start having on-line meetings.
    Yes, it is unsatisfying to have meetings
    without pizza, without beer, without the
    mingling with a hundred colleagues, saying
    hello to old friends, and making new
    business contacts -- but, for the time
    being, on-line meetings are the best we
    can do. Our first on-line event will be
    at 7pm, Thursday evening, February 18.
    The title of the talk is "Conan Package
    Manager for C++ in Practice". Here is a
    synopsis of the talk:

    The Conan package manager for C++ is
    useful in both simple and advanced
    development environments. Join the Conan
    team to see it in action, with a simple
    demo using OSS libraries and tools from
    ConanCenter, and a more complete demo
    showing how to create and upload a package
    including different binaries for different
    platforms to a private repository. Also,
    learn about many other unique and
    innovative advanced Conan features along
    the way.

    and here is some information about the

    Jerry Wiltse is a Senior Software Engineer
    of the Conan development team, and has
    been dedicated to build engineering for C
    and C++ since 2016. He is an avid
    open-source enthusiast but also deeply
    focused on enterprise development
    environments. He is also the narrator and
    creator of the Conan learning track on the
    JFrog Academy.

    Although we do not have to give a list of
    attendees to a building guard, because it
    is a virtual event, please use meetup.com
    to RSVP for the event if you plan to
    attend, so we will have an idea of how
    many of our members are interested in
    having these on-line events.

    You will have to register in advance at
    and when your registration is confirmed,
    you will be given the URL for the videoconference.
    If you have any problems with the registration,
    please contact me at [masked].
    Otherwise, I look forward to seeing you on-line
    on the evening of the 18th.

  • 35 Years of Teaching C and C++

    425 South Financial Place

    Most of the members of our group are programmers,
    or looking to become programmers, but it is
    possible to earn a living from C and C++ in other

    Jay F. Shachter (the Organizer of the Chicago
    C/C++ Users' Group, unless someone else wants the
    job), has derived most of his income for the past
    35 years as a trainer of programmers and system
    administrators (although he has also worked as a
    programmer and system administrator himself).
    Jay will start off the new year with a talk about
    his 35 years of experience teaching C and C++.
    This will not be a PowerPoint presentation, just
    a telling of stories, without visual aids, ending
    with some observations on the long-term trends in
    the industry.

    (Please note that the RSVP period for this event
    will end on Thursday night, January 23, because
    our host will need to give to the security
    guards, a few days in advance, a list of people
    who should be admitted to the building.)

  • Tell Me Lies, Tell Me Sweet Little Lies

    Akuna Capital -- 333 South Wabash Avenue, Suite 2400

    (This talk was inspired by an off-the-cuff lightning talk
    at CppCon 2019. After receiving encouragement to do so,
    the talk has been expanded into a full-length

    As developers, we aim to write APIs whose contract is
    clear to both the user and the implementor.
    Unfortunately, it is remarkably easy to write C++ API
    contracts that may not exactly tell the truth, and some
    times it takes incredible effort to squeeze the truth
    out of them. Throw in type traits, template
    specializations, special member functions and overload
    sets, and we have a situation where even George
    Washington might tell a lie or two.

    As time goes by, we gain more standard means of compile
    time introspection, and more code is utilizing such
    features. While telling the truth is always a good
    thing (unless you are a politician), it is becoming more
    important to pay attention to the ways in which our code
    may say one thing and do something else.

    Jody Hagins started compiling source code with a C++
    compiler in 1984. However, he didn't start programming
    in C++ until 1992, when he read The Greatest C++ Book
    Ever Written, "Advanced C++ Programming Styles and
    Idioms" by Jim Coplien. That book, combined with cfront,
    which generated C code from C++ source, gave him the
    joyful task of writing SVr4 Streams drivers in C++.
    Ever since, he has been hooked on writing C++ code for
    kernel modules, large telephony applications, and, since
    the late 1990s, applications in what is now known as the
    high frequency trading industry. This is his first
    public C++ presentation. Be ye forewarned

  • 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.

  • The Many Variants of Variant


    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.


    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.


    And we are back to the 12th floor Room CD.

  • C++ Open Mic


    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).

  • 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.

  • 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.

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

    Disbelief LLC / Conference

    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).