10 Nov 2014
C++ Debugging Resources
- rr: A deterministic record and replay tool for C++. Allows a run of an application to be fully captured. This trace can then be replayed under gbd to allow debugging, both forwards and efficiently backwards.
- musl: A Linux libc implementation which is designed to be statically linkable as well as small, efficient, and readable.
- HPX: A parallel runtime based on advanced futures and lightweight tasks which scales from embedded devices to distributed clusters.
- libFuzzer: A Clang Tools project to do fuzz-testing for C++ based on coverage analysis. I.e., throws broken inputs at your program to see if it falls over while tracking which code paths are being reached.
- Brigand Metaprogramming: A macro-free template metaprogramming library which relies on C++ 11 and so compiles faster than Boost::MPL while leading to less verbose client code. Eleven minute talk.
C++ Standards Documents
- Parallelism TS: Improvements to C++ concurrency support aimed at exploiting multiple cores and heterogenous compute capabilities.
Large Scale C++
- Hourglass Interfaces for C++ APIs
C++ in the Weeds
- std::move Is Not Destructive Move,
Matt Calabrese, May 30 2014.
Matt points out that
std::moveis not destructive and that the object on the rhs of a move should still be in a reasonable state after the move. Destructive moves would actually be desireable from an efficiency point of view: after all moved from objects are typically thrown away immediately post-move.
- About Move, Sean Parent, 2014.
- std::move Is Not Destructive Move, Matt Calabrese, May 30 2014. Matt points out that