C++11: The future is here
6.00pm, Wednesday 17th April 2013
Faraday Lecture Theatre, Swansea University
C++11 Swansea SLIDES (PDF, 3.6MB)
C++11 allows you to write better code faster. By “better” I mean maintainable code with fewer errors than was possible in C++98. C++11 allows you to write less code for a given problem and have it run faster. By “faster” I mean getting real-world code to run as fast as or faster than hand-tuned C, as fast as or faster than code written in any modern language I know of, sometimes much faster. This can be done today, using currently shipping compilers.
But most people are stuck in a 1970s or 1980s mindset, can we catch up to C++11? Worse, many people are stuck in a mess of “legacy code” creating a framework of constraints that discourage the use of 21st century facilities.
My aim in this talk is not to enumerate the C++11 features or to go into great technical detail on a select feature. My aim is to show how the best practices for C++ design and programming are better supported by C++11 than by earlier versions. To do that, I discuss small code examples. I expect to use the concurrency library, standard containers, and chrono. I expect to use initializer lists, move semantics, variadic templates, lambda expressions, and type aliases. As usual, RAII (Resource Acquisition Is Initialization) will feature large.
Bjarne Stroustrup designed and implemented C++. Over the last decade, C++ has become the most widely used language supporting object-oriented programming by making abstraction techniques affordable and manageable for mainstream projects. Using C++ as his tool, Stroustrup has pioneered the use of object-oriented and generic programming techniques in application areas where efficiency is a premium; examples include general systems programming, switching, simulation, graphics, user-interfaces, embedded systems, and scientific computation. For about two decades, C++ has been among the most widely used programming languages. The influence of C++ and the ideas it popularized are clearly visible far beyond the C++ community. Languages including C, C#, Java, and Fortran99 provide features pioneered for mainstream use by C++, as do systems such as COM and CORBA.
His book “The C++ Programming Language” (Addison-Wesley, first edition 1985, second edition 1991, third edition 1997, “special” edition 2000, fourth edition 2013) is the most widely read book of its kind and has been translated into at least 19 languages. A later book, “The Design and Evolution of C++” (Addison-Wesley, 1994) broke new ground in the description of the way a programming language was shaped by ideas, ideals, problems, and practical constraints. His recent programming textbook “Programming – Principles and Practice using C++”, has (so far) been translated into 7 languages. In addition to his five books, Stroustrup has published more than a hundred academic and more popular papers. He took an active role in the creation of the ANSI/ISO standard for C++ and continues to work on the maintenance and revision of that standard.
Bjarne Stroustrup was elected member of The National Academy of Engineering in 2004 "for the creation of the C++ programming language". As the first computer scientist ever, he was awarded the 2005 William Procter Prize for Scientific Achievement from Sigma Xi (the scientific research society). He was given the IEEE Computer Society's 2004 Computer Entrepreneur Award "for pioneering the development and commercialization of industrial-strength, object-oriented programming technologies, and the profound changes they fostered in business and industry." He is an AT&T Bell Laboratories Fellow and an AT&T Fellow. He received the 1993 ACM Grace Murray Hopper award "for his early work laying the foundations for the C++ programming language. based on those foundations and Dr. Stroustrup's continuing efforts, C++ has become one of the most influential programming languages in the history of computing". Member of the Texas Academy of Medicine, Engineering, and Science. He is an ACM fellow and an IEEE fellow. He received the 2008 Dr. Dobb's Excellence in Programming award for "advancing the craft of computer programming". He served on the Danish Research Council. He was named one of "America's twelve top young scientists" by Fortune Magazine in 1990 and as one of "the 20 most influential people in the computer industry in the last 20 years" by BYTE magazine in 1995.