Meeting 19 April 2018

Concepts in-place syntax, by Herb Sutter


Concepts TS and P0694:

1void sort(Sortable& s);


1void sort(Sortable{}& s);

Feedback on the distributed C++ meetup

  • Post by Jean Guegant
  • Lessons:
    • Two-city format is best, 3-city is too much
    • Need breaks
    • 15-min talks are ideal
    • Slides need a bigger font
    • Mandatory NDA is bad
    • Turn the lights on in the audience

Boost 1.67

Blast from the Past: Borland C++ on Windows 98

Apple switches from libclang to Clangd

We at Apple have decided to switch focus from supporting the libclang-based tooling infrastructure in order to join forces on the Clangd development efforts. We believe that Clangd is the preferred solution for interactive Clang-based tooling. There has been great work on Clangd already, and we’re going to start investing effort as well to make Clangd faster, more capable, and more efficient.

The C++ committee has taken off its ball and chain

  • Post by Derek Jones
    • Is C++ a language of exciting new features?
    • Is C++ a language known for great stability over a long period?
  • Reddit

Modern C++ isn’t memory safe, either

Original STL Library Documentation Recovered by Robert Ramey

Boris Schäling - Containers in Boost (C++Now 2013)

  • Boost.Multiindex – multiple interfaces (indexes) for item lookup
  • Boost.Bitmap – a std::map-like container which supports lookups from both sides
  • Boost.Container – same containers as in the C++ standard library but with extra comfort:
    • Support for recursive containers
    • Stable versions of vector, set, map; single-linked list
    • SSO
  • Boost.Intrusive – containers that store the original objects instead of their copies
  • Boost.PointerContainer – manages dynamically allocated objects (similar to std::vector<std::unique_ptr>)
  • Boost.CircularBuffer – a fixed-size container that overwrites elements if you add more
  • Boost.Lockfree – a lock-free queue and stack that can be concurrently modified from different threads
  • Boost.PropertyTree – a serializable key/value pair container for storing configuration data; supports XML, JSON and INI formats
  • Boost.Multiarray – a multidimensional array; index-based access returns a subarray; reshaping and resising supported
  • Boost.DynamicBitset – like std::bitset but the size can be set/changed at run time
  • Boost.Heap – like std::priority_queue but with additional functionality
  • Boost.Array – use std::array instead
  • Boost.Unordered – use unordered containers from the C++ standard library instead



Edsger Dijkstra:

Program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence.