Meeting 28 September 2017
Bjarne Stroustrup awarded 2017 Faraday Medal
Congratulations!
For significant contributions to the history of computing, in particular pioneering the C++ programming language, Bjarne Stroustrup has been named the recipient of the 2017 Faraday Medal, the most prestigious award to an individual made by the Institution of Engineering and Technology.
Bjarne Stroustrup “Learning and Teaching Modern C++”
- “We’re all students and teachers”
- “Don’t brag”
Is C++ Programming “bipolar”?
The C++ coding experience is bi-polar, lets talk about it (Reddit)
Winner of the “Most misconceptions about C++ in one post” award.
C++17 in Visual Studio
Stephan T. Lavavej on Twitter:
C++17 fold expressions have been implemented by @joncaves for VS 2017 15.5!
— Stephan T. Lavavej (@StephanTLavavej) September 26, 2017
And later:
Our plan was C++17 complete in calendar year 2017. It looks like we’ll miss that, but we’re getting really close. FS will be last in libs.
— Stephan T. Lavavej (@StephanTLavavej) September 27, 2017
Google’s Abseil
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library. The Abseil library code is collected from Google’s own C++ code base, has been extensively tested and used in production, and is the same code we depend on in our daily coding lives.
In some cases, Abseil provides pieces missing from the C++ standard; in others, Abseil provides alternatives to the standard for special needs we’ve found through usage in the Google code base. We denote those cases clearly within the library code we provide you.
Intro, Why, C++ Quickstart, GitHub (Apache), Reddit
Stb libraries by Sean Barrett
Single-file libraries for C/C++ (Public Domain/MIT)
GitHub, libraries, Author, Twitter
C, MSVC 6 (!)
Wt 4.0.0
Wt is a web GUI library in modern C++. Quickly develop highly interactive web UIs with widgets, without having to write a single line of JavaScript. Wt handles all request handling and page rendering for you, so you can focus on functionality.
Home, Download, GitHub (GPL/Commercial)
GCC 7.2 patch implementing abbreviated lambdas
- GitHub, Reddit
- Implements “Abbreviated Lambdas for Fun and Profit”: P0573r1
- Implements “Forward without forward”: P0644r0
1[](auto&&x) => func(>>x);
2//equivalent to
3[](auto&& x) ->
4decltype((func(std::forward<decltype(x)&&>(x))))
5noexcept(noexcept(func(std::forward<decltype(x)&&>(x))))
6{
7 return func(std::forward<decltype(x)&&>(x));
8};
Useful GCC warning options not enabled by -Wall -Wextra
Parsing Expression Grammar Template Library
GitHub (MIT)
The Parsing Expression Grammar Template Library (PEGTL) is a zero-dependency C++11 header-only parser combinator library for creating parsers according to a Parsing Expression Grammar (PEG).
What’s new in Clang-format 5
Programming language energy efficiency
- Most efficient: C, C++, Rust
- Least efficient: Python, Ruby, Perl, Lua
Units 2.3.0 released
A compile-time, header-only, dimensional analysis and unit conversion library built on C++14 with no dependencies.
1// simple implicit conversion
2foot_t len = 5_m;
3// more complex implicit conversion
4meters_per_second_t speed = 60_mi / 1_hr;
5// previous example with mixed units
6square_meter_t area = 15_m * 5_m + 1000_cm * 1000_cm;
Detection Idiom - A Stopgap for Concepts
- SFINAE and expression SFINAE
void_t
is_detected
implementation- links to videos on the topic
How to implement the pimpl idiom by using unique_ptr
Small Buffer Optimization for C++ Lambdas
A faster replacement for std::function
using PImpl, type erasure and placement-new
(MIT).