Meeting 27 July 2017

Presenting effectively in meetings, by Dirk Haun, ACCU 2017

Roger Orr - Making Templates Easier (ACCU)

Meetup | Video

  • Templates
  • enable_if
  • Concepts

CLion 2017.3 roadmap


  • Valgrind integration
  • Remote development support
  • Better C++ language support
  • Multiple toolchains
  • Custom pretty printers for debugger
  • GDB 8, LLDB 5
  • Gutter icons for unit tests
  • Improvements and fixes for Google Test and Catch

Thoughts on Metaclasses - Herb Sutter - Keynote [ACCU 2017]


  • Depends on:
    • C++17
    • concepts (C++20)
    • constexpr, if constexpr
    • compile-time meta-programming (P0589, P0633)
    • reflection (P0194, P0385, P0578, P0590, P0598)
  • Start watching at 18m


1$T, $expr

Compile-time programming

1constexpr {
2    for (auto m: $T.variables())
3        if ( == "xyzzy")
4            -> { int plugh; }

The Detection Idiom - a simpler way to SFINAE - Marshall Clow [ACCU 2017]

pystring by Sony ImageWorks


Pystring is a collection of C++ functions which match the interface and behavior of python’s string class methods using std::string. Implemented in C++, it does not require or make use of a python interpreter. It provides convenience and familiarity for common string operations not included in the standard C++ library. It’s also useful in environments where both C++ and python are used.

Overlapping functionality (such as index and slice/substr) of std::string is included to match python interfaces.

Modern C++ Design reloaded - Odin Holmes [ACCU 2017]

  • This is an “update” to the book “Modern C++ Design” by Andrei Alexandrescu
  • Discusses updated template metaprogramming techniques:
    • policy-based class design;
    • replacing multiple templates with variadic templates.

“Concept”-based polymorphism

Bjarne Stroustrup on Mapping the Journey podcast


The Guidelines Support Library - Rainer Grimm


The Ultimate Question of Programming, Refactoring, and Everything

by Andrey Karpov, PVS Studio


  • Tips and tricks on C++ programming
  • Examples of bugs and bad practices
  • Lots of code snippets
  • Based on PVS-Studio diagnostics

&& == and, & == bitand

STL on friends