Meeting 28 September 2017

Bjarne Stroustrup awarded 2017 Faraday Medal

Congratulations!

Columbia University:

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++”

Reddit thread

CppCon 2017 Playlist

  • “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:

And later:

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

Post

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

Post

Programming language energy efficiency

Article

  • Most efficient: C, C++, Rust
  • Least efficient: Python, Ruby, Perl, Lua

Units 2.3.0 released

GitHub

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

Post

  • 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

Article by Jonathan Boccara

Small Buffer Optimization for C++ Lambdas

Blog post, GitHub

A faster replacement for std::function using PImpl, type erasure and placement-new (MIT).