development:cpp
Table of Contents
C++
There are many interesting C++ sites and blogs. There's no need to repeat / copy the contents.
Sites, Blogs and Books
- hacking C++
- C++ and other development and devop themes
- Fluent C++
-
-
- Bartek (Bartlomiej Filipek)
- Rainer Grimm
- Bjarne Stroustrup
- Andrei Alexandrescu
- Herb Sutter
- Nicolai Josuttis
- Scott Meyers
- John Lakos
- Jonathan Müller
- Eli Bendersky
- Ofek Shilon
- Šimon Tóth
- A Complete Guide to Standard C++ Algorithms
- Reference
- cheatsheet of modern C++ language and library features
- C++ Best Practices
- C++ Core Guidelines
Conferences & YouTube channels
Libraries
- Lists
- Boost
-
- static / small buffer optimized vectors
- Enums
- Coroutines to Implement C++ Exceptions
- Martin Moene
- Scope Exit
- with LAMBDA and
td::unique_ptr
#include <memory>
auto lambda_to_call = [&](void*) { .. };
std::unique_ptr<void, decltype(lambda_to_call)> rst((void*)1, lambda_to_call);
- (G)UI
-
- (T)UI
Selected topics
Out-of-memory handling strategies
- it's really hard to recover from out-of-memory situations
- the program needs the possibility to free (or shrink) some memory resources
- all memory allocations - including utilized libraries - have to be controlled
- that's practically impossible for big applications depending on many external libraries
- Linux and it's OOM-killer need special attention
- related: the requirement for an exception-safe c++ program, so that resources are not leaked
- for most applications, it's not worth that much efforts. thus, let the program terminate or crash (early)!
some Links:
- Linux' OOM-Killer:
Templates and SFINAE enable_if
- “Substitution Failure Is Not An Error”
Dynamic Polymorphism vs Curiously Recurring Template Pattern (CRTP)
CRTP: injecting/providing methods to a (template) base class through a template class parameter. This might be done to overcome performance penalties of dynamic polymorphism, e.g. to allow inlining.
Weak Symbols
RAII
Misc articles
- 50 terrible coding tips for a C++ developer
- The Day The Standard Library Died
Hyrum's Law:
With a sufficient number of users of an API,
it does not matter what you promise in the contract:
all observable behaviors of your system
will be depended on by somebody.
IDE
Compiler & Standard support
- predefined preprocessor definitions
Compiler + IDE
- Qt Creator
- Windows Offline Installer includes MinGW gcc
- JetBrains CLion
- Microsoft Visual Studio
- MinGW
- CodeLite
- embarcardero C++ Builder
Profiler
- Intel VTune Profiler
- Linux perf record
- valgrind:
- cachegrind
- callgrind
development/cpp.txt · Last modified: 2023/12/26 by hayati