Michael Wong


Michael Wong is currently the VP of Research and Development at Codeplay, and previously the Senior Technical Strategy Architect for IBM compilers. He is the Canadian Head of Delegation to the C++ Standard and a past CEO of OpenMP. He is also a Director and VP of ISOCPP.org, and Vice-Chair of Programming Languages for Canada's Standard Council. He has so many titles, it's a wonder he can get anything done. He chairs the WG21 SG5 Transactional Memory and SG14 Games Development/Low Latency/Financial/Embedded, and is the co-author of a number C++/OpenMP/Transactional Memory features including generalized attributes, user-defined literals, inheriting constructors, weakly ordered memory models, and explicit conversion operators. Having been the past C++ team lead to IBM's XL C++ compiler means he has been messing around with designing C++ compilers for twenty years. His current research interest, i.e. what he would like to do if he had time is in the area of parallel programming, future programming models for self-driving cars and low-power devices, transactional memory, C++ benchmark performance, object model, generic programming and template metaprogramming. He holds a B.Sc from University of Toronto, and a Masters in Mathematics from University of Waterloo. He has been asked to speak at ACCU, C++Now, Meeting C++, ADC++, CASCON, Bloomberg, CERN, and many Universities, research centers and companies. For latest updated bio please go: https://wongmichael.com/about/



C++17, Will It Be Great Or Just OK (and C++ Future For Heterogeneous Dispatch To Self-driving Cars) (2016)

C++17 has promised to be a major release from C++11/14. This will be one of the first talk on C++17 showing the major features. There will be Filesystems, Parallelism, and Special Math, as well as a large number of language and library features, but nothing major like the Move semantics in C++11 that changed C++ for every user. Many other features were already baked in through the various Study Groups. C++ has 14 study groups that act as Evolution Committees, promising to keep features coming for years. There will be Co-routines, Concepts, contracts, modules, ranges, reflection, Transactional Memory coming, but none of these major features made it into C++17. Concepts and many other major features were pulled out or not voted in at the last Standard meeting, causing great controversy on the internet. What were the committee thinking and why? And what did we get and will it change C++17 the way C++11 changed C++98/04 into a new language? This talk will deep dive into how C++ supports Parallelism and Concurrency, how Executors work and how they intend to address Heterogeneous computing in future C++ and how this can help to program self-driving cars.